Skip to content

Commit

Permalink
ceph: send cap release message early on failed revoke.
Browse files Browse the repository at this point in the history
If an MDS tries to revoke caps that we don't have, we want to send
releases early since they probably contain the caps message the MDS
is looking for.

Previously, we only sent the messages if we didn't have the inode either. But
in a multi-mds system we can retain the inode after dropping all caps for
a single MDS.

Signed-off-by: Greg Farnum <gregf@hq.newdream.net>
Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Greg Farnum authored and Sage Weil committed Oct 7, 2010
1 parent bba0cd0 commit 21b559d
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions fs/ceph/caps.c
Original file line number Diff line number Diff line change
Expand Up @@ -2774,15 +2774,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,
if (op == CEPH_CAP_OP_IMPORT)
__queue_cap_release(session, vino.ino, cap_id,
mseq, seq);

/*
* send any full release message to try to move things
* along for the mds (who clearly thinks we still have this
* cap).
*/
ceph_add_cap_releases(mdsc, session);
ceph_send_cap_releases(mdsc, session);
goto done;
goto flush_cap_releases;
}

/* these will work even if we don't have a cap yet */
Expand Down Expand Up @@ -2810,7 +2802,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,
dout(" no cap on %p ino %llx.%llx from mds%d\n",
inode, ceph_ino(inode), ceph_snap(inode), mds);
spin_unlock(&inode->i_lock);
goto done;
goto flush_cap_releases;
}

/* note that each of these drops i_lock for us */
Expand All @@ -2834,6 +2826,17 @@ void ceph_handle_caps(struct ceph_mds_session *session,
ceph_cap_op_name(op));
}

goto done;

flush_cap_releases:
/*
* send any full release message to try to move things
* along for the mds (who clearly thinks we still have this
* cap).
*/
ceph_add_cap_releases(mdsc, session);
ceph_send_cap_releases(mdsc, session);

done:
mutex_unlock(&session->s_mutex);
done_unlocked:
Expand Down

0 comments on commit 21b559d

Please sign in to comment.