diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-01-10 03:10:48 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-01-10 03:10:48 +0100 |
commit | dc9319f5a3e1f67d2a2fbf190e30f6d03f569fed (patch) | |
tree | 4352a861a639e7d1738fbe30223ea2fbdb6bf26f /net | |
parent | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sag... (diff) | |
parent | rpc: fix xdr_truncate_encode to handle buffer ending on page boundary (diff) | |
download | linux-dc9319f5a3e1f67d2a2fbf190e30f6d03f569fed.tar.xz linux-dc9319f5a3e1f67d2a2fbf190e30f6d03f569fed.zip |
Merge branch 'for-3.19' of git://linux-nfs.org/~bfields/linux
Pull two nfsd bugfixes from Bruce Fields.
* 'for-3.19' of git://linux-nfs.org/~bfields/linux:
rpc: fix xdr_truncate_encode to handle buffer ending on page boundary
nfsd: fix fi_delegees leak when fi_had_conflict returns true
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/xdr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c index 1cb61242e55e..4439ac4c1b53 100644 --- a/net/sunrpc/xdr.c +++ b/net/sunrpc/xdr.c @@ -606,7 +606,7 @@ void xdr_truncate_encode(struct xdr_stream *xdr, size_t len) struct kvec *head = buf->head; struct kvec *tail = buf->tail; int fraglen; - int new, old; + int new; if (len > buf->len) { WARN_ON_ONCE(1); @@ -629,8 +629,8 @@ void xdr_truncate_encode(struct xdr_stream *xdr, size_t len) buf->len -= fraglen; new = buf->page_base + buf->page_len; - old = new + fraglen; - xdr->page_ptr -= (old >> PAGE_SHIFT) - (new >> PAGE_SHIFT); + + xdr->page_ptr = buf->pages + (new >> PAGE_SHIFT); if (buf->page_len) { xdr->p = page_address(*xdr->page_ptr); |