@@ -380,6 +380,13 @@ EXPORT_SYMBOL_GPL(md_new_event);
380380static LIST_HEAD (all_mddevs );
381381static DEFINE_SPINLOCK (all_mddevs_lock );
382382
383+ static bool is_md_suspended (struct mddev * mddev )
384+ {
385+ if (mddev -> suspended )
386+ return true;
387+ else
388+ return false;
389+ }
383390/* Rather than calling directly into the personality make_request function,
384391 * IO requests come here first so that we can check if the device is
385392 * being suspended pending a reconfiguration.
@@ -389,7 +396,7 @@ static DEFINE_SPINLOCK(all_mddevs_lock);
389396 */
390397static bool is_suspended (struct mddev * mddev , struct bio * bio )
391398{
392- if (mddev -> suspended )
399+ if (is_md_suspended ( mddev ) )
393400 return true;
394401 if (bio_data_dir (bio ) != WRITE )
395402 return false;
@@ -434,7 +441,7 @@ void md_handle_request(struct mddev *mddev, struct bio *bio)
434441 goto check_suspended ;
435442 }
436443
437- if (atomic_dec_and_test (& mddev -> active_io ) && mddev -> suspended )
444+ if (atomic_dec_and_test (& mddev -> active_io ) && is_md_suspended ( mddev ) )
438445 wake_up (& mddev -> sb_wait );
439446}
440447EXPORT_SYMBOL (md_handle_request );
@@ -6219,7 +6226,7 @@ EXPORT_SYMBOL_GPL(md_stop_writes);
62196226static void mddev_detach (struct mddev * mddev )
62206227{
62216228 md_bitmap_wait_behind_writes (mddev );
6222- if (mddev -> pers && mddev -> pers -> quiesce && !mddev -> suspended ) {
6229+ if (mddev -> pers && mddev -> pers -> quiesce && !is_md_suspended ( mddev ) ) {
62236230 mddev -> pers -> quiesce (mddev , 1 );
62246231 mddev -> pers -> quiesce (mddev , 0 );
62256232 }
@@ -8531,7 +8538,7 @@ bool md_write_start(struct mddev *mddev, struct bio *bi)
85318538 return true;
85328539 wait_event (mddev -> sb_wait ,
85338540 !test_bit (MD_SB_CHANGE_PENDING , & mddev -> sb_flags ) ||
8534- mddev -> suspended );
8541+ is_md_suspended ( mddev ) );
85358542 if (test_bit (MD_SB_CHANGE_PENDING , & mddev -> sb_flags )) {
85368543 percpu_ref_put (& mddev -> writes_pending );
85378544 return false;
@@ -9259,7 +9266,7 @@ void md_check_recovery(struct mddev *mddev)
92599266 wake_up (& mddev -> sb_wait );
92609267 }
92619268
9262- if (mddev -> suspended )
9269+ if (is_md_suspended ( mddev ) )
92639270 return ;
92649271
92659272 if (mddev -> bitmap )
0 commit comments