Skip to content

Commit

Permalink
ceph: associate requests with opening sessions
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Sage Weil committed Jan 12, 2011
1 parent 4af25fd commit dc69e2e
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions fs/ceph/mds_client.c
Original file line number Diff line number Diff line change
@@ -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);
}
}

0 comments on commit dc69e2e

Please sign in to comment.