diff options
author | Jeff Layton <jlayton@redhat.com> | 2011-01-11 07:24:01 -0500 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2011-01-19 17:52:29 +0000 |
commit | 941b853d779de3298e39f1eb4e252984464eaea8 (patch) | |
tree | a1e41bb06debf22349f010a1c9427c9b89bb79b4 /fs/sync.c | |
parent | 12fed00de963433128b5366a21a55808fab2f756 (diff) |
cifs: don't fail writepages on -EAGAIN errors
If CIFSSMBWrite2 returns -EAGAIN, then the error should be considered
temporary. CIFS should retry the write instead of setting an error on
the mapping and returning.
For WB_SYNC_ALL, just retry the write immediately. In the WB_SYNC_NONE
case, call redirty_page_for_writeback on all of the pages that didn't
get written out and then move on.
Also, fix up the handling of a short write with a successful return
code. MS-CIFS says that 0 bytes_written means ENOSPC or EFBIG. It
doesn't mention what a short, but non-zero write means, so for now
treat it as we would an -EAGAIN return.
Reviewed-by: Suresh Jayaraman <sjayaraman@suse.de>
Reviewed-by: Pavel Shilovsky <piastryyy@gmail.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/sync.c')
0 files changed, 0 insertions, 0 deletions