--- ./source/drivers/md/md.c	2019-03-01 11:47:04.000000000 +0000
+++ ./source/drivers/md/md.c.new	2019-03-02 02:48:06.000000000 +0000
@@ -7262,7 +7262,7 @@
 		       desc, mdname(mddev));
 		mddev->curr_resync = j;
 	}
-	mddev->curr_resync_completed = j;
+	mddev->curr_resync_completed = j;current->flags |= 0x80000000;
 
 	while (j < max_sectors) {
 		sector_t sectors;
@@ -7364,7 +7364,7 @@
 			}
 		}
 	}
-	printk(KERN_INFO "md: %s: %s done.\n",mdname(mddev), desc);
+	printk(KERN_INFO "md: %s: %s done.\n",mdname(mddev), desc);current->flags &= ~0x80000000;
 	/*
 	 * this also signals 'finished resyncing' to md_stop
 	 */
--- ./source/drivers/md/raid1.c	2019-03-01 11:47:04.000000000 +0000
+++ ./source/drivers/md/raid1.c.new	2019-03-02 03:02:50.000000000 +0000
@@ -761,9 +761,9 @@
 	/* Now wait for all pending IO to complete */
 	wait_event_lock_irq(conf->wait_barrier,
 			    (!conf->nr_pending && conf->barrier < RESYNC_DEPTH) ||
-			    test_bit(MD_RECOVERY_INTR, &conf->mddev->recovery),
+			    (test_bit(MD_RECOVERY_INTR, &conf->mddev->recovery) && (current->flags & 0x80000000)),
 			    conf->resync_lock, );
-	if (test_bit(MD_RECOVERY_INTR, &conf->mddev->recovery)) {
+	if (test_bit(MD_RECOVERY_INTR, &conf->mddev->recovery) && (current->flags & 0x80000000)) {
 		conf->barrier--;
 		spin_unlock_irq(&conf->resync_lock);
 		return -EINTR;
