Two bugfixes for md in 3.15
Both tagged for -stable. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIVAwUAU3AfITnsnt1WYoG5AQJiqQ/+Pk4n3AQqqtfjPaR5EWmAVwgLgvy7AX8z yG9UwN9AXqd1IkgaE+PzUwZHEUR1/fYeF52c5cakrHCvluHgxakUX6/T/f9dO8Ht rXK4Q82aTfm+5lfUsZfOL8aeY9ZheXXo97vbVAfegdIDNC6Il2nktHj6AfBfQWlQ r0hm3Vz1rgXxXVam7SLlbxa71JUxltlSpLqUoN487iF/hSJx5D04NiLFT8KJwtUh UtMiyNsUpMJHWfYZjTsX4+o9psLZB2fE+WXJvYy5jB3C/Yy3FB0x38fVTC7+ozej F0J8bhG/6oO0/0gieW7EXTDWNLlCtG8Z/rUi/Hre+7Lps3vp7V65q/uB1B2VnNjn TRzbEaCoWdzMjamp5btSzN64MJgvCPRn1TvPwcm+kSDk/IpslYMllwXK7H+UutXZ GEEw3TVz1jWk7JKxai9raApKtXB7yDpiKREFMjhowBb0rM+VL4/3gvzSpPyVbJxj 4TTj9fUqsXWMG4HzKuyxXlV51hAbcaVnYirf0JrkjzzYkl0d/oBAADQtaApD+NX2 thlfYUW4tjssmMB+X5ok5Zp4A0TV31a1bEmZ8CE63i/IHCf5F8BHsHpyO4P9ITDX zNEo1lKuIbhn5oVHDoLZjNgIPGi2+lq6jvq8+0POKyEBr++Nrbld2u0GB8Q3/SjE LAhU+0iUY6A= =9QhO -----END PGP SIGNATURE----- Merge tag 'md/3.15-fixes' of git://neil.brown.name/md Pull md bugfixes from Neil Brown: "Two bugfixes for md in 3.15 Both tagged for -stable" * tag 'md/3.15-fixes' of git://neil.brown.name/md: md: avoid possible spinning md thread at shutdown. md/raid10: call wait_barrier() for each request submitted.
This commit is contained in:
commit
2ddb5998d0
@ -8516,7 +8516,8 @@ static int md_notify_reboot(struct notifier_block *this,
|
|||||||
if (mddev_trylock(mddev)) {
|
if (mddev_trylock(mddev)) {
|
||||||
if (mddev->pers)
|
if (mddev->pers)
|
||||||
__md_stop_writes(mddev);
|
__md_stop_writes(mddev);
|
||||||
mddev->safemode = 2;
|
if (mddev->persistent)
|
||||||
|
mddev->safemode = 2;
|
||||||
mddev_unlock(mddev);
|
mddev_unlock(mddev);
|
||||||
}
|
}
|
||||||
need_delay = 1;
|
need_delay = 1;
|
||||||
|
@ -1172,6 +1172,13 @@ static void __make_request(struct mddev *mddev, struct bio *bio)
|
|||||||
int max_sectors;
|
int max_sectors;
|
||||||
int sectors;
|
int sectors;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Register the new request and wait if the reconstruction
|
||||||
|
* thread has put up a bar for new requests.
|
||||||
|
* Continue immediately if no resync is active currently.
|
||||||
|
*/
|
||||||
|
wait_barrier(conf);
|
||||||
|
|
||||||
sectors = bio_sectors(bio);
|
sectors = bio_sectors(bio);
|
||||||
while (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) &&
|
while (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) &&
|
||||||
bio->bi_iter.bi_sector < conf->reshape_progress &&
|
bio->bi_iter.bi_sector < conf->reshape_progress &&
|
||||||
@ -1552,12 +1559,6 @@ static void make_request(struct mddev *mddev, struct bio *bio)
|
|||||||
|
|
||||||
md_write_start(mddev, bio);
|
md_write_start(mddev, bio);
|
||||||
|
|
||||||
/*
|
|
||||||
* Register the new request and wait if the reconstruction
|
|
||||||
* thread has put up a bar for new requests.
|
|
||||||
* Continue immediately if no resync is active currently.
|
|
||||||
*/
|
|
||||||
wait_barrier(conf);
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user