nfsd4: "backfill" using write_bytes_to_xdr_buf
authorJ. Bruce Fields <bfields@redhat.com>
Thu, 29 Aug 2013 19:42:52 +0000 (15:42 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 30 May 2014 21:31:49 +0000 (17:31 -0400)
commit082d4bd72a4527c6568f53f4a5de74e804666fa7
tree9afd435d78a4e2ba045ddb3d2b2058817e3650ba
parent1fcea5b20b74cb856f5cd27161fea5329079dbd7
nfsd4: "backfill" using write_bytes_to_xdr_buf

Normally xdr encoding proceeds in a single pass from start of a buffer
to end, but sometimes we have to write a few bytes to an earlier
position.

Use write_bytes_to_xdr_buf for these cases rather than saving a pointer
to write to.  We plan to rewrite xdr_reserve_space to handle encoding
across page boundaries using a scratch buffer, and don't want to risk
writing to a pointer that was contained in a scratch buffer.

Also it will no longer be safe to calculate lengths by subtracting two
pointers, so use xdr_buf offsets instead.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4xdr.c