Skip to content

Commit

Permalink
ceph: add missing locking to protect i_snap_realm_item during split
Browse files Browse the repository at this point in the history
All ci->i_snap_realm_item/realm->inodes_with_caps manipulation should be
protected by realm->inodes_with_caps_lock.  This bug would have only bit
us in a rare race with a realm split (during some snap creations).

Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Sage Weil committed Mar 21, 2010
1 parent 978097c commit 052bb34
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions fs/ceph/snap.c
Original file line number Diff line number Diff line change
Expand Up @@ -818,7 +818,9 @@ void ceph_handle_snap(struct ceph_mds_client *mdsc,
* queued (again) by ceph_update_snap_trace()
* below. Queue it _now_, under the old context.
*/
spin_lock(&realm->inodes_with_caps_lock);
list_del_init(&ci->i_snap_realm_item);
spin_unlock(&realm->inodes_with_caps_lock);
spin_unlock(&inode->i_lock);

ceph_queue_cap_snap(ci,
Expand Down

0 comments on commit 052bb34

Please sign in to comment.