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: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
36d091f475
commit
978a7a47ca
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue