Merge branch 'for-linus' of git://neil.brown.name/md

* 'for-linus' of git://neil.brown.name/md:
md: Don't wait UNINTERRUPTIBLE for other resync to finish

+7 -1
+7 -1
drivers/md/md.c
··· 5761 * time 'round when curr_resync == 2 5762 */ 5763 continue; 5764 - prepare_to_wait(&resync_wait, &wq, TASK_UNINTERRUPTIBLE); 5765 if (!kthread_should_stop() && 5766 mddev2->curr_resync >= mddev->curr_resync) { 5767 printk(KERN_INFO "md: delaying %s of %s" ··· 5773 " share one or more physical units)\n", 5774 desc, mdname(mddev), mdname(mddev2)); 5775 mddev_put(mddev2); 5776 schedule(); 5777 finish_wait(&resync_wait, &wq); 5778 goto try_again;
··· 5761 * time 'round when curr_resync == 2 5762 */ 5763 continue; 5764 + /* We need to wait 'interruptible' so as not to 5765 + * contribute to the load average, and not to 5766 + * be caught by 'softlockup' 5767 + */ 5768 + prepare_to_wait(&resync_wait, &wq, TASK_INTERRUPTIBLE); 5769 if (!kthread_should_stop() && 5770 mddev2->curr_resync >= mddev->curr_resync) { 5771 printk(KERN_INFO "md: delaying %s of %s" ··· 5769 " share one or more physical units)\n", 5770 desc, mdname(mddev), mdname(mddev2)); 5771 mddev_put(mddev2); 5772 + if (signal_pending(current)) 5773 + flush_signals(current); 5774 schedule(); 5775 finish_wait(&resync_wait, &wq); 5776 goto try_again;