Signed-off-by: Andrew Morton --- 25-akpm/net/sunrpc/xdr.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff -puN net/sunrpc/xdr.c~nfsacl-encode-and-decode-arbitrary-xdr-arrays-fix net/sunrpc/xdr.c --- 25/net/sunrpc/xdr.c~nfsacl-encode-and-decode-arbitrary-xdr-arrays-fix 2005-01-23 15:06:50.266249192 -0800 +++ 25-akpm/net/sunrpc/xdr.c 2005-01-23 15:07:20.511651192 -0800 @@ -1015,14 +1015,16 @@ xdr_xcode_array2(struct xdr_buf *buf, un /* process pages array */ base -= buf->head->iov_len; if (todo && base < buf->page_len) { + unsigned int avail_page; + avail_here = min(todo, buf->page_len - base); todo -= avail_here; base += buf->page_base; ppages = buf->pages + (base >> PAGE_CACHE_SHIFT); base &= ~PAGE_CACHE_MASK; - unsigned int avail_page = min_t(unsigned int, - PAGE_CACHE_SIZE - base, avail_here); + avail_page = min_t(unsigned int, PAGE_CACHE_SIZE - base, + avail_here); c = kmap(*ppages) + base; while (avail_here) { _