diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-04-02 19:29:52 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-04-30 22:17:06 -0700 |
commit | c63c7b051395368573779c8309aa5c990dcf2f96 (patch) | |
tree | db54090eef99349d15b95fcd8c2620a2403d8db8 /include/linux/tipc.h | |
parent | 8b09bee3083897e375bd0bf9d60f48daedfab3e0 (diff) | |
download | blackbird-obmc-linux-c63c7b051395368573779c8309aa5c990dcf2f96.tar.gz blackbird-obmc-linux-c63c7b051395368573779c8309aa5c990dcf2f96.zip |
NFS: Fix a race when doing NFS write coalescing
Currently we do write coalescing in a very inefficient manner: one pass in
generic_writepages() in order to lock the pages for writing, then one pass
in nfs_flush_mapping() and/or nfs_sync_mapping_wait() in order to gather
the locked pages for coalescing into RPC requests of size "wsize".
In fact, it turns out there is actually a deadlock possible here since we
only start I/O on the second pass. If the user signals the process while
we're in nfs_sync_mapping_wait(), for instance, then we may exit before
starting I/O on all the requests that have been queued up.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/tipc.h')
0 files changed, 0 insertions, 0 deletions