lkml.org 
[lkml]   [2016]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 014/124] staging: lustre: lmv: release locks if lmv_intent_lock() fails
    Date
    From: John L. Hammond <john.hammond@intel.com>

    In lmv_intent_lock() if we will return an error then first release any
    locks referenced by the intent.

    Signed-off-by: John L. Hammond <john.hammond@intel.com>
    Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5431
    Reviewed-on: http://review.whamcloud.com/11319
    Reviewed-by: wang di <di.wang@intel.com>
    Reviewed-by: Lai Siyao <lai.siyao@intel.com>
    Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
    Signed-off-by: James Simmons <jsimmons@infradead.org>
    ---
    drivers/staging/lustre/lustre/lmv/lmv_intent.c | 22 ++++++++++++++++++++++
    1 files changed, 22 insertions(+), 0 deletions(-)

    diff --git a/drivers/staging/lustre/lustre/lmv/lmv_intent.c b/drivers/staging/lustre/lustre/lmv/lmv_intent.c
    index 85cc5cb..fd3dc7c 100644
    --- a/drivers/staging/lustre/lustre/lmv/lmv_intent.c
    +++ b/drivers/staging/lustre/lustre/lmv/lmv_intent.c
    @@ -533,5 +533,27 @@ int lmv_intent_lock(struct obd_export *exp, struct md_op_data *op_data,
    extra_lock_flags);
    else
    LBUG();
    +
    + if (rc < 0) {
    + struct lustre_handle lock_handle;
    +
    + if (it->it_lock_mode) {
    + lock_handle.cookie = it->it_lock_handle;
    + ldlm_lock_decref(&lock_handle, it->it_lock_mode);
    + }
    +
    + it->it_lock_handle = 0;
    + it->it_lock_mode = 0;
    +
    + if (it->it_remote_lock_mode) {
    + lock_handle.cookie = it->it_remote_lock_handle;
    + ldlm_lock_decref(&lock_handle,
    + it->it_remote_lock_mode);
    + }
    +
    + it->it_remote_lock_handle = 0;
    + it->it_remote_lock_mode = 0;
    + }
    +
    return rc;
    }
    --
    1.7.1
    \
     
     \ /
      Last update: 2016-09-18 22:40    [W:4.397 / U:0.444 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site