aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/md/md.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 4c72e9626eff..6be7146be5b3 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -766,14 +766,7 @@ void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
766void md_super_wait(struct mddev *mddev) 766void md_super_wait(struct mddev *mddev)
767{ 767{
768 /* wait for all superblock writes that were scheduled to complete */ 768 /* wait for all superblock writes that were scheduled to complete */
769 DEFINE_WAIT(wq); 769 wait_event(mddev->sb_wait, atomic_read(&mddev->pending_writes)==0);
770 for(;;) {
771 prepare_to_wait(&mddev->sb_wait, &wq, TASK_UNINTERRUPTIBLE);
772 if (atomic_read(&mddev->pending_writes)==0)
773 break;
774 schedule();
775 }
776 finish_wait(&mddev->sb_wait, &wq);
777} 770}
778 771
779int sync_page_io(struct md_rdev *rdev, sector_t sector, int size, 772int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,