cifs: vary timeout on writes past EOF based on offset (try #5)
authorJeff Layton <jlayton@redhat.com>
Fri, 3 Apr 2009 17:44:00 +0000 (13:44 -0400)
committerSteve French <sfrench@us.ibm.com>
Fri, 17 Apr 2009 01:26:49 +0000 (01:26 +0000)
commitfbec9ab952d4810960e620035c8e95f0fbbae4be
treee4d8ef8e0fbe2703d98390d96151cbf40d32f434
parentd036f50fc202e1a851a25dc5edc215ebd0086201
cifs: vary timeout on writes past EOF based on offset (try #5)

This is the fourth version of this patch:

The first three generated a compiler warning asking for explicit curly
braces.

The first two didn't handle update the size correctly when writes that
didn't start at the eof were done.

The first patch also didn't update the size correctly when it explicitly
set via truncate().

This patch adds code to track the client's current understanding of the
size of the file on the server separate from the i_size, and then to use
this info to semi-intelligently set the timeout for writes past the EOF.

This helps prevent timeouts when trying to write large, sparse files on
windows servers.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/cifsfs.c
fs/cifs/cifsglob.h
fs/cifs/cifssmb.c
fs/cifs/file.c
fs/cifs/inode.c
fs/cifs/readdir.c