diff options
author | Sage Weil <sage@newdream.net> | 2010-11-02 13:49:00 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2011-01-12 15:15:13 -0800 |
commit | dc69e2e9fcd7c613eb744ea3b9c4ee9ca554e822 (patch) | |
tree | 4b981b9ded0e08c2ab517b48367040a7b9902ed9 /fs/ceph | |
parent | 4af25fdda6943f311a63034f80933e4d6d6e3a19 (diff) | |
download | lwn-dc69e2e9fcd7c613eb744ea3b9c4ee9ca554e822.tar.gz lwn-dc69e2e9fcd7c613eb744ea3b9c4ee9ca554e822.zip |
ceph: associate requests with opening sessions
Associate request with sessions that aren't yep open. This makes the
debugfs mdsc request list more informative.
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph')
-rw-r--r-- | fs/ceph/mds_client.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index e22e8b41d572..509339ceef72 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -1791,6 +1791,8 @@ static int __do_request(struct ceph_mds_client *mdsc, goto finish; } + put_request_session(req); + mds = __choose_mds(mdsc, req); if (mds < 0 || ceph_mdsmap_get_state(mdsc->mdsmap, mds) < CEPH_MDS_STATE_ACTIVE) { @@ -1808,6 +1810,8 @@ static int __do_request(struct ceph_mds_client *mdsc, goto finish; } } + req->r_session = get_session(session); + dout("do_request mds%d session %p state %s\n", mds, session, session_state_name(session->s_state)); if (session->s_state != CEPH_MDS_SESSION_OPEN && @@ -1820,7 +1824,6 @@ static int __do_request(struct ceph_mds_client *mdsc, } /* send request */ - req->r_session = get_session(session); req->r_resend_mds = -1; /* forget any previous mds hint */ if (req->r_request_started == 0) /* note request start time */ @@ -1874,7 +1877,6 @@ static void kick_requests(struct ceph_mds_client *mdsc, int mds) if (req->r_session && req->r_session->s_mds == mds) { dout(" kicking tid %llu\n", req->r_tid); - put_request_session(req); __do_request(mdsc, req); } } |