From 678a113b4c9bb613daaf02e34b2498f13317ad0d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 9 Jun 2010 16:52:04 -0700 Subject: [PATCH] --- yaml --- r: 200335 b: refs/heads/master c: 2b2300d62ea413bec631d5b880effa2cc5363acb h: refs/heads/master i: 200333: 7a8ea80025b1bf6191197fd58f1d877d69a62d9d 200331: be24b7062971cb32ffb518eec6b71f75421d008f 200327: 49e832c6be4c80a3263e6489d1efe33d4a3efafe 200319: 754f72bbd0a238e6c454b203c2c2682f9b795510 v: v3 --- [refs] | 2 +- trunk/fs/ceph/caps.c | 1 + trunk/fs/ceph/mds_client.c | 10 +++++----- trunk/fs/ceph/mds_client.h | 3 +++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index d7425292f261..d04699af6fb2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3d7ded4d81d807c2f75f310a8d74a5d72be13a1b +refs/heads/master: 2b2300d62ea413bec631d5b880effa2cc5363acb diff --git a/trunk/fs/ceph/caps.c b/trunk/fs/ceph/caps.c index 7c692e746237..619b61655ee5 100644 --- a/trunk/fs/ceph/caps.c +++ b/trunk/fs/ceph/caps.c @@ -2708,6 +2708,7 @@ void ceph_handle_caps(struct ceph_mds_session *session, * along for the mds (who clearly thinks we still have this * cap). */ + ceph_add_cap_releases(mdsc, session, -1); ceph_send_cap_releases(mdsc, session); goto done; } diff --git a/trunk/fs/ceph/mds_client.c b/trunk/fs/ceph/mds_client.c index d28b6a9c0f96..1766947fc07a 100644 --- a/trunk/fs/ceph/mds_client.c +++ b/trunk/fs/ceph/mds_client.c @@ -1066,9 +1066,9 @@ static int trim_caps(struct ceph_mds_client *mdsc, * * Called under s_mutex. */ -static int add_cap_releases(struct ceph_mds_client *mdsc, - struct ceph_mds_session *session, - int extra) +int ceph_add_cap_releases(struct ceph_mds_client *mdsc, + struct ceph_mds_session *session, + int extra) { struct ceph_msg *msg; struct ceph_mds_cap_release *head; @@ -1980,7 +1980,7 @@ static void handle_reply(struct ceph_mds_session *session, struct ceph_msg *msg) } mutex_unlock(&mdsc->mutex); - add_cap_releases(mdsc, req->r_session, -1); + ceph_add_cap_releases(mdsc, req->r_session, -1); mutex_unlock(&session->s_mutex); /* kick calling process */ @@ -2690,7 +2690,7 @@ static void delayed_work(struct work_struct *work) send_renew_caps(mdsc, s); else ceph_con_keepalive(&s->s_con); - add_cap_releases(mdsc, s, -1); + ceph_add_cap_releases(mdsc, s, -1); if (s->s_state == CEPH_MDS_SESSION_OPEN || s->s_state == CEPH_MDS_SESSION_HUNG) ceph_send_cap_releases(mdsc, s); diff --git a/trunk/fs/ceph/mds_client.h b/trunk/fs/ceph/mds_client.h index e43752b52635..b292fa42a66d 100644 --- a/trunk/fs/ceph/mds_client.h +++ b/trunk/fs/ceph/mds_client.h @@ -322,6 +322,9 @@ static inline void ceph_mdsc_put_request(struct ceph_mds_request *req) kref_put(&req->r_kref, ceph_mdsc_release_request); } +extern int ceph_add_cap_releases(struct ceph_mds_client *mdsc, + struct ceph_mds_session *session, + int extra); extern void ceph_send_cap_releases(struct ceph_mds_client *mdsc, struct ceph_mds_session *session);