lkml.org 
[lkml]   [2014]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.17 062/146] nfsd4: reserve adequate space for LOCK op
    Date
    3.17-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: "J. Bruce Fields" <bfields@redhat.com>

    commit f7b43d0c992c3ec3e8d9285c3fb5e1e0eb0d031a upstream.

    As of 8c7424cff6 "nfsd4: don't try to encode conflicting owner if low
    on space", we permit the server to process a LOCK operation even if
    there might not be space to return the conflicting lockowner, because
    we've made returning the conflicting lockowner optional.

    However, the rpc server still wants to know the most we might possibly
    return, so we need to take into account the possible conflicting
    lockowner in the svc_reserve_space() call here.

    Symptoms were log messages like "RPC request reserved 88 but used 108".

    Fixes: 8c7424cff6 "nfsd4: don't try to encode conflicting owner if low on space"
    Reported-by: Kinglong Mee <kinglongmee@gmail.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/nfsd/nfs4xdr.c | 8 ++++++++
    1 file changed, 8 insertions(+)

    --- a/fs/nfsd/nfs4xdr.c
    +++ b/fs/nfsd/nfs4xdr.c
    @@ -1670,6 +1670,14 @@ nfsd4_decode_compound(struct nfsd4_compo
    readbytes += nfsd4_max_reply(argp->rqstp, op);
    } else
    max_reply += nfsd4_max_reply(argp->rqstp, op);
    + /*
    + * OP_LOCK may return a conflicting lock. (Special case
    + * because it will just skip encoding this if it runs
    + * out of xdr buffer space, and it is the only operation
    + * that behaves this way.)
    + */
    + if (op->opnum == OP_LOCK)
    + max_reply += NFS4_OPAQUE_LIMIT;

    if (op->status) {
    argp->opcnt = i+1;



    \
     
     \ /
      Last update: 2014-10-28 05:01    [W:4.156 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site