lkml.org 
[lkml]   [2020]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 22/27] ceph: fix double unlock in handle_cap_export()
    Date
    From: Wu Bo <wubo40@huawei.com>

    [ Upstream commit 4d8e28ff3106b093d98bfd2eceb9b430c70a8758 ]

    If the ceph_mdsc_open_export_target_session() return fails, it will
    do a "goto retry", but the session mutex has already been unlocked.
    Re-lock the mutex in that case to ensure that we don't unlock it
    twice.

    Signed-off-by: Wu Bo <wubo40@huawei.com>
    Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/ceph/caps.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
    index 617e9ae67f506..e11aacb35d6b5 100644
    --- a/fs/ceph/caps.c
    +++ b/fs/ceph/caps.c
    @@ -3394,6 +3394,7 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex,
    WARN_ON(1);
    tsession = NULL;
    target = -1;
    + mutex_lock(&session->s_mutex);
    }
    goto retry;

    --
    2.20.1
    \
     
     \ /
      Last update: 2020-05-14 20:59    [W:2.160 / U:0.816 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site