lkml.org 
[lkml]   [2015]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 57/60] Failing to send a CLOSE if file is opened WRONLY and server reboots on a 4.x mount
    3.2.73-rc1 review patch.  If anyone has any objections, please let me know.

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

    From: Olga Kornievskaia <aglo@umich.edu>

    commit a41cbe86df3afbc82311a1640e20858c0cd7e065 upstream.

    A test case is as the description says:
    open(foobar, O_WRONLY);
    sleep() --> reboot the server
    close(foobar)

    The bug is because in nfs4state.c in nfs4_reclaim_open_state() a few
    line before going to restart, there is
    clear_bit(NFS4CLNT_RECLAIM_NOGRACE, &state->flags).

    NFS4CLNT_RECLAIM_NOGRACE is a flag for the client states not open
    owner states. Value of NFS4CLNT_RECLAIM_NOGRACE is 4 which is the
    value of NFS_O_WRONLY_STATE in nfs4_state->flags. So clearing it wipes
    out state and when we go to close it, “call_close” doesn’t get set as
    state flag is not set and CLOSE doesn’t go on the wire.

    Signed-off-by: Olga Kornievskaia <aglo@umich.edu>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    fs/nfs/nfs4state.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/fs/nfs/nfs4state.c
    +++ b/fs/nfs/nfs4state.c
    @@ -1192,7 +1192,7 @@ restart:
    }
    spin_unlock(&state->state_lock);
    nfs4_put_open_state(state);
    - clear_bit(NFS4CLNT_RECLAIM_NOGRACE,
    + clear_bit(NFS_STATE_RECLAIM_NOGRACE,
    &state->flags);
    goto restart;
    }


    \
     
     \ /
      Last update: 2015-11-15 03:41    [W:4.093 / U:1.828 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site