diff options
author | 2017-09-21 10:29:22 -0700 | |
---|---|---|
committer | 2017-09-27 20:08:29 -0700 | |
commit | c4d6a1b8e8ea79c439a4871cba540443c9eb13b9 (patch) | |
tree | 782289f1af0633af764aa1cb8a775efedb2d8934 /drivers/md | |
parent | md: fix a race condition for flush request handling (diff) | |
download | linux-c4d6a1b8e8ea79c439a4871cba540443c9eb13b9.tar.gz linux-c4d6a1b8e8ea79c439a4871cba540443c9eb13b9.tar.bz2 linux-c4d6a1b8e8ea79c439a4871cba540443c9eb13b9.zip |
dm-raid: fix a race condition in request handling
raid_map calls pers->make_request, which missed the suspend check. Fix it with
the new md_handle_request API.
Fix: cc27b0c78c79(md: fix deadlock between mddev_suspend() and md_write_start())
Cc: Heinz Mauelshagen <heinzm@redhat.com>
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-raid.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c index 5bfe285ea9d1..1ac58c5651b7 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -3238,7 +3238,7 @@ static int raid_map(struct dm_target *ti, struct bio *bio) if (unlikely(bio_end_sector(bio) > mddev->array_sectors)) return DM_MAPIO_REQUEUE; - mddev->pers->make_request(mddev, bio); + md_handle_request(mddev, bio); return DM_MAPIO_SUBMITTED; } |