NFS: "open code" the NFS direct write rescheduler
authorChuck Lever <cel@netapp.com>
Tue, 20 Jun 2006 16:55:45 +0000 (12:55 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 24 Jun 2006 17:11:38 +0000 (13:11 -0400)
commitfedb595c66e1fbd5acafe0d43b7e95c13c936d61
treee865ecc2399c09b7164c2f2c13a2c5c10c8d4de1
parentb1c5921c5b715c207d7fe77cd7aaafbb322f09f5
NFS: "open code" the NFS direct write rescheduler

An NFSv3/v4 client must reschedule on-the-wire writes if the writes are
UNSTABLE, and the server reboots before the client can complete a
subsequent COMMIT request.

To support direct asynchronous scatter-gather writes, the write
rescheduler in fs/nfs/direct.c must not depend on the I/O parameters
in the controlling nfs_direct_req structure.  iovecs can be somewhat
arbitrarily complex, so there could be an unbounded amount of information
to save for a rarely encountered requirement.

Refactor the direct write rescheduler so it uses information from each
nfs_write_data structure to reschedule writes, instead of caching that
information in the controlling nfs_direct_req structure.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/direct.c