NFS: Fix the 'desynchronized value of nfs_i.ncommit' error
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 20 Apr 2007 20:12:45 +0000 (16:12 -0400)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 21 Apr 2007 05:56:29 +0000 (22:56 -0700)
commit612c9384fd0486686699f7d49b774f0c7a79c511
tree443192b69689488f0be8ca72f3e8f73db0a53988
parent6d677e3504cd173b2ff7fc393ee4241b3c0f92a6
NFS: Fix the 'desynchronized value of nfs_i.ncommit' error

Redirtying a request that is already marked for commit will screw up the
accounting for NR_UNSTABLE_NFS as well as nfs_i.ncommit.
Ensure that all requests on the commit queue are labelled with the
PG_NEED_COMMIT flag, and avoid moving them onto the dirty list inside
nfs_page_mark_flush().

Also inline nfs_mark_request_dirty() into nfs_page_mark_flush() for
atomicity reasons. Avoid dropping the spinlock until we're done marking the
request in the radix tree and have added it to the ->dirty list.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/nfs/write.c