diff --git a/[refs] b/[refs] index f14a0217bc64..af72f3c0c6be 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e01a594646ebbf964b6058e3bf28125379063439 +refs/heads/master: aab53dd9e81ccefa7b8d88eec5138dd73639a783 diff --git a/trunk/fs/ceph/mds_client.c b/trunk/fs/ceph/mds_client.c index a4d9e5b0fd3d..d45787470fb5 100644 --- a/trunk/fs/ceph/mds_client.c +++ b/trunk/fs/ceph/mds_client.c @@ -2647,7 +2647,9 @@ static void delayed_work(struct work_struct *work) else ceph_con_keepalive(&s->s_con); add_cap_releases(mdsc, s, -1); - send_cap_releases(mdsc, s); + if (s->s_state == CEPH_MDS_SESSION_OPEN || + s->s_state == CEPH_MDS_SESSION_HUNG) + send_cap_releases(mdsc, s); mutex_unlock(&s->s_mutex); ceph_put_mds_session(s);