On Dec 10, 2013, at 2:19 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote: > > On Dec 10, 2013, at 21:11, Weston Andros Adamson <dros@xxxxxxxxxx> wrote: > >> >> On Dec 10, 2013, at 1:13 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote: >> >>> On Thu, 2013-11-21 at 16:20 -0500, Weston Andros Adamson wrote: >> >>> >>>> if (res.acl_scratch) >>>> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c >>>> index 5be2868..4e2e2da 100644 >>>> --- a/fs/nfs/nfs4xdr.c >>>> +++ b/fs/nfs/nfs4xdr.c >>>> @@ -5207,8 +5207,6 @@ static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req, >>>> if ((status = decode_op_hdr(xdr, OP_GETATTR)) != 0) >>>> goto out; >>>> >>>> - xdr_enter_page(xdr, xdr->buf->page_len); >>> >>> Why is this being removed? >> >> Because it BUG()s! ;) >> >> I must admit that I don’t get why xdr_enter_page() doesn’t work when the XDR layer does the page allocation, but it does not — and the nfs3xdr ACL code (which uses the XDR layer allocation) also doesn’t call this. It worked well without this, so I just removed it and didn’t investigate why. > > I’m guessing that xdr->buf>page_len is being set incorrectly by the code that does the page allocation and/or that it is failing to update xdr->buf->len and/or xdr->buf->buflen. > > We really do need the xdr_enter_page() here, or the acl bitmap + data won’t be aligned properly on the page boundary. Ok, I’ll add that back and then fix the oops… and investigate if the v3 ACL code needs it too… Thanks, -dros -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html