md: protect ->pers changes with mddev->lock
->pers is already protected by ->reconfig_mutex, and cannot possibly change when there are threads running or outstanding IO. However there are some places where we access ->pers not in a thread or IO context, and where ->reconfig_mutex is unnecessarily heavy-weight: level_show and md_seq_show(). So protect all changes, and those accesses, with ->lock. This is a step toward taking those accesses out from under reconfig_mutex. [Fixed missing "mddev->pers" -> "pers" conversion, thanks to Dan Carpenter <dan.carpenter@oracle.com>] Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
@ -391,6 +391,7 @@ struct mddev {
|
||||
* rdev superblocks, events
|
||||
* clearing MD_CHANGE_*
|
||||
* in_sync - and related safemode and MD_CHANGE changes
|
||||
* pers (also protected by reconfig_mutex and pending IO).
|
||||
*/
|
||||
spinlock_t lock;
|
||||
wait_queue_head_t sb_wait; /* for waiting on superblock updates */
|
||||
|
Reference in New Issue
Block a user