diff options
author | Sage Weil <sage@newdream.net> | 2010-06-09 16:47:10 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-06-10 13:30:07 -0700 |
commit | 3d7ded4d81d807c2f75f310a8d74a5d72be13a1b (patch) | |
tree | c633b938f72dcd39c84f2430c7d4025331ab4369 /fs/ceph/mds_client.c | |
parent | 9dbd412f56c453f15014396c6024b895c1485ccb (diff) | |
download | linux-stable-3d7ded4d81d807c2f75f310a8d74a5d72be13a1b.tar.gz linux-stable-3d7ded4d81d807c2f75f310a8d74a5d72be13a1b.tar.bz2 linux-stable-3d7ded4d81d807c2f75f310a8d74a5d72be13a1b.zip |
ceph: release cap on import if we don't have the inode
If we get an IMPORT that give us a cap, but we don't have the inode, queue
a release (and try to send it immediately) so that the MDS doesn't get
stuck waiting for us.
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/mds_client.c')
-rw-r--r-- | fs/ceph/mds_client.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 29b4485cf1ca..d28b6a9c0f96 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -1176,8 +1176,8 @@ static int check_cap_flush(struct ceph_mds_client *mdsc, u64 want_flush_seq) /* * called under s_mutex */ -static void send_cap_releases(struct ceph_mds_client *mdsc, - struct ceph_mds_session *session) +void ceph_send_cap_releases(struct ceph_mds_client *mdsc, + struct ceph_mds_session *session) { struct ceph_msg *msg; @@ -2693,7 +2693,7 @@ static void delayed_work(struct work_struct *work) add_cap_releases(mdsc, s, -1); if (s->s_state == CEPH_MDS_SESSION_OPEN || s->s_state == CEPH_MDS_SESSION_HUNG) - send_cap_releases(mdsc, s); + ceph_send_cap_releases(mdsc, s); mutex_unlock(&s->s_mutex); ceph_put_mds_session(s); |