diff options
author | Jeff Layton <jlayton@redhat.com> | 2011-04-12 09:13:44 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2011-04-12 10:19:55 -0400 |
commit | ca83ce3d5b9ad321ee24f5870a77f0b21ac5a5de (patch) | |
tree | 7added4d982e03c89599ef7c78c9b69845a7504d /fs/cifs/cifsglob.h | |
parent | d9b942013730c38ac83564d6669c6d0ecf6d754d (diff) |
cifs: don't allow mmap'ed pages to be dirtied while under writeback (try #3)
This is more or less the same patch as before, but with some merge
conflicts fixed up.
If a process has a dirty page mapped into its page tables, then it has
the ability to change it while the client is trying to write the data
out to the server. If that happens after the signature has been
calculated then that signature will then be wrong, and the server will
likely reset the TCP connection.
This patch adds a page_mkwrite handler for CIFS that simply takes the
page lock. Because the page lock is held over the life of writepage and
writepages, this prevents the page from becoming writeable until
the write call has completed.
With this, we can also remove the "sign_zero_copy" module option and
always inline the pages when writing.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsglob.h')
-rw-r--r-- | fs/cifs/cifsglob.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index ddb359906708..a5d1106fcbde 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
@@ -826,7 +826,6 @@ GLOBAL_EXTERN unsigned int CIFSMaxBufSize; /* max size not including hdr */ | |||
826 | GLOBAL_EXTERN unsigned int cifs_min_rcv; /* min size of big ntwrk buf pool */ | 826 | GLOBAL_EXTERN unsigned int cifs_min_rcv; /* min size of big ntwrk buf pool */ |
827 | GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */ | 827 | GLOBAL_EXTERN unsigned int cifs_min_small; /* min size of small buf pool */ |
828 | GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/ | 828 | GLOBAL_EXTERN unsigned int cifs_max_pending; /* MAX requests at once to server*/ |
829 | GLOBAL_EXTERN bool sign_zero_copy; /* don't copy written pages with signing */ | ||
830 | 829 | ||
831 | /* reconnect after this many failed echo attempts */ | 830 | /* reconnect after this many failed echo attempts */ |
832 | GLOBAL_EXTERN unsigned short echo_retries; | 831 | GLOBAL_EXTERN unsigned short echo_retries; |