Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 052bb34a authored by Sage Weil's avatar Sage Weil
Browse files

ceph: add missing locking to protect i_snap_realm_item during split



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: default avatarSage Weil <sage@newdream.net>
parent 978097c9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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,