Pull md bugfix from Neil Brown: "One fix for md for 3.18. This fixes a regression introduced in 3.13" * tag 'md/3.18-fix' of git://neil.brown.name/md: md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN
Unified · Split
| @@ -5121,6 +5121,7 @@ static int md_set_readonly(struct mddev *mddev, struct block_device *bdev) · 5120 unmodified lines | ||
| 5121 | 5121 | printk("md: %s still in use.\n",mdname(mddev)); |
| 5122 | 5122 | if (did_freeze) { |
| 5123 | 5123 | clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); |
| 5124 | + set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); | |
| 5124 | 5125 | md_wakeup_thread(mddev->thread); |
| 5125 | 5126 | } |
| 5126 | 5127 | err = -EBUSY; |
| @@ -5135,6 +5136,8 @@ static int md_set_readonly(struct mddev *mddev, struct block_device *bdev) · 8 unmodified lines | ||
| 5135 | 5136 | mddev->ro = 1; |
| 5136 | 5137 | set_disk_ro(mddev->gendisk, 1); |
| 5137 | 5138 | clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); |
| 5139 | + set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); | |
| 5140 | + md_wakeup_thread(mddev->thread); | |
| 5138 | 5141 | sysfs_notify_dirent_safe(mddev->sysfs_state); |
| 5139 | 5142 | err = 0; |
| 5140 | 5143 | } |
| @@ -5178,6 +5181,7 @@ static int do_md_stop(struct mddev *mddev, int mode, · 37 unmodified lines | ||
| 5178 | 5181 | mutex_unlock(&mddev->open_mutex); |
| 5179 | 5182 | if (did_freeze) { |
| 5180 | 5183 | clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); |
| 5184 | + set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); | |
| 5181 | 5185 | md_wakeup_thread(mddev->thread); |
| 5182 | 5186 | } |
| 5183 | 5187 | return -EBUSY; |