Mercurial > yaffs-ecoscentric-gpl
changeset 113:325f5d3a757c
Handle partial writes more gracefully: return partial byte counts, return
ENOSPC only if no partial count or error code available. Based on fix
from Mikhail Ryleev.
| author | tpoynor <tpoynor> |
|---|---|
| date | Wed, 25 Jan 2006 01:21:08 +0000 |
| parents | 0f8838615001 |
| children | 2a9f82d34433 |
| files | yaffs_fs.c |
| diffstat | 1 files changed, 4 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -31,7 +31,7 @@ */ const char *yaffs_fs_c_version = - "$Id: yaffs_fs.c,v 1.39 2006-01-24 22:22:52 tpoynor Exp $"; + "$Id: yaffs_fs.c,v 1.40 2006-01-25 01:21:08 tpoynor Exp $"; extern const char *yaffs_guts_c_version; #include <linux/config.h> @@ -628,9 +628,9 @@ static int yaffs_commit_write(struct fil T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_commit_write returning %d\n", - nWritten == nBytes ? 0 : -1)); + nWritten == nBytes ? 0 : nWritten)); - return nWritten == nBytes ? 0 : -1; + return nWritten == nBytes ? 0 : nWritten; } @@ -788,8 +788,7 @@ static ssize_t yaffs_file_write(struct f } yaffs_GrossUnlock(dev); - - return nWritten != n ? -ENOSPC : nWritten; + return nWritten == 0 ? -ENOSPC : nWritten; } static int yaffs_readdir(struct file *f, void *dirent, filldir_t filldir)
