yaffs: Fix yaffs_file_write to not return -ENOSPC when there is nothing to write
authorArve Hjønnevåg <arve@android.com>
Thu, 7 May 2009 00:37:10 +0000 (17:37 -0700)
committerArve Hjønnevåg <arve@android.com>
Mon, 8 Feb 2010 23:09:09 +0000 (15:09 -0800)
yaffs_write_end may get called with copied == 0 if the requested write was
interrupted by a signal, but user-space will not restart the write if -ENOSPC
is returned.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
fs/yaffs2/yaffs_fs.c

index 30ae7c7e259a6518eefc94953655280fdeb5394e..2288eeee2d77ba911eeb388da89e1f999a9d5637 100644 (file)
@@ -1075,7 +1075,7 @@ static ssize_t yaffs_file_write(struct file *f, const char *buf, size_t n,
 
        }
        yaffs_GrossUnlock(dev);
-       return nWritten == 0 ? -ENOSPC : nWritten;
+       return (!nWritten && n) ? -ENOSPC : nWritten;
 }
 
 /* Space holding and freeing is done to ensure we have space available for write_begin/end */