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

Commit 978a7a47 authored by NeilBrown's avatar NeilBrown
Browse files

md/bitmap: protect clearing of ->bitmap by mddev->lock



This makes it safe to inspect the struct while holding only
the spinlock.

Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 36d091f4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1619,7 +1619,9 @@ void bitmap_destroy(struct mddev *mddev)
		return;

	mutex_lock(&mddev->bitmap_info.mutex);
	spin_lock(&mddev->lock);
	mddev->bitmap = NULL; /* disconnect from the md device */
	spin_unlock(&mddev->lock);
	mutex_unlock(&mddev->bitmap_info.mutex);
	if (mddev->thread)
		mddev->thread->timeout = MAX_SCHEDULE_TIMEOUT;
+1 −0
Original line number Diff line number Diff line
@@ -392,6 +392,7 @@ struct mddev {
	 *   clearing MD_CHANGE_*
	 *   in_sync - and related safemode and MD_CHANGE changes
	 *   pers (also protected by reconfig_mutex and pending IO).
	 *   clearing ->bitmap
	 */
	spinlock_t			lock;
	wait_queue_head_t		sb_wait;	/* for waiting on superblock updates */