OpenCloudOS-Kernel/Documentation/filesystems/nfs
J. Bruce Fields ffe1137ba7 nfsd4: delay filling in write iovec array till after xdr decoding
Our server rejects compounds containing more than one write operation.
It's unclear whether this is really permitted by the spec; with 4.0,
it's possibly OK, with 4.1 (which has clearer limits on compound
parameters), it's probably not OK.  No client that we're aware of has
ever done this, but in theory it could be useful.

The source of the limitation: we need an array of iovecs to pass to the
write operation.  In the worst case that array of iovecs could have
hundreds of elements (the maximum rwsize divided by the page size), so
it's too big to put on the stack, or in each compound op.  So we instead
keep a single such array in the compound argument.

We fill in that array at the time we decode the xdr operation.

But we decode every op in the compound before executing any of them.  So
once we've used that array we can't decode another write.

If we instead delay filling in that array till the time we actually
perform the write, we can reuse it.

Another option might be to switch to decoding compound ops one at a
time.  I considered doing that, but it has a number of other side
effects, and I'd rather fix just this one problem for now.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2012-11-26 09:08:15 -05:00
..
00-INDEX NFSD: Added fault injection documentation 2011-11-07 21:10:47 -05:00
Exporting Documentation: Exporting: update description of d_splice_alias 2011-07-26 12:57:09 -04:00
fault_injection.txt NFSD: Added fault injection documentation 2011-11-07 21:10:47 -05:00
idmapper.txt NFS: Update idmapper documentation 2012-02-06 18:48:01 -05:00
knfsd-stats.txt nfs: move more to Documentation/filesystems/nfs 2009-11-06 14:01:02 -05:00
nfs-rdma.txt nfs: new subdir Documentation/filesystems/nfs 2009-10-27 19:34:04 -04:00
nfs.txt NFS: Add nfs4_unique_id boot parameter 2012-10-01 15:33:33 -07:00
nfs41-server.txt nfsd4: delay filling in write iovec array till after xdr decoding 2012-11-26 09:08:15 -05:00
nfsd-admin-interfaces.txt nfsd: document kernel interfaces for nfsd configuration 2012-08-21 17:42:03 -04:00
nfsroot.txt ipconfig: add nameserver IPs to kernel-parameter ip= 2012-09-21 14:51:21 -04:00
pnfs.txt Documentation: Fix typo in multiple files in Documentation 2012-04-16 14:37:13 +02:00
rpc-cache.txt Documentation/: it's -> its where appropriate 2010-04-23 02:09:52 +02:00