Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 211390
b: refs/heads/master
c: 21b559d
h: refs/heads/master
v: v3
  • Loading branch information
Greg Farnum authored and Sage Weil committed Oct 7, 2010
1 parent c561c2f commit eb2c381
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bba0cd0e3d97472855840af817b766e3f632a501
refs/heads/master: 21b559de56695d36b3f0819b7e2454737db254f8
23 changes: 13 additions & 10 deletions trunk/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 eb2c381

Please sign in to comment.