···5761 * time 'round when curr_resync == 25762 */5763 continue;5764- prepare_to_wait(&resync_wait, &wq, TASK_UNINTERRUPTIBLE);00005765 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);005776 schedule();5777 finish_wait(&resync_wait, &wq);5778 goto try_again;
···5761 * time 'round when curr_resync == 25762 */5763 continue;5764+ /* We need to wait 'interruptible' so as not to5765+ * contribute to the load average, and not to5766+ * 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;