nfsd4: use xdr_reserve_space in attribute encoding
authorJ. Bruce Fields <bfields@redhat.com>
Wed, 28 Aug 2013 01:32:25 +0000 (21:32 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 28 May 2014 18:52:34 +0000 (14:52 -0400)
commitddd1ea56367202f6c99135cd59de7a97af4c4ffd
tree623a164aed98fb1d4a3d7ecc337acc88a5b27fec
parent5f4ab9458755eddc66912a15319363bf311f7fc8
nfsd4: use xdr_reserve_space in attribute encoding

This is a cosmetic change for now; no change in behavior.

Note we're just depending on xdr_reserve_space to do the bounds checking
for us, we're not really depending on its adjustment of iovec or xdr_buf
lengths yet, as those are fixed up by as necessary after the fact by
read-link operations and by nfs4svc_encode_compoundres.  However we do
have to update xdr->iov on read-like operations to prevent
xdr_reserve_space from messing with the already-fixed-up length of the
the head.

When the attribute encoding fails partway through we have to undo the
length adjustments made so far.  We do it manually for now, but later
patches will add an xdr_truncate_encode() helper to handle cases like
this.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/acl.h
fs/nfsd/idmap.h
fs/nfsd/nfs4acl.c
fs/nfsd/nfs4idmap.c
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4xdr.c