summaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-raid1.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-06-03 03:38:02 -0400
committerJens Axboe <axboe@fb.com>2017-06-09 11:27:32 -0400
commit846785e6a5725de4f0788e78e101961566a77d2a (patch)
tree4dd5c24f6ebb9e4adb4ab920a6bdd99531e1300c /drivers/md/dm-raid1.c
parent14ef1e48269dde9b78efe4b112fa78e9ced72bc1 (diff)
dm: don't return errnos from ->map
Instead use the special DM_MAPIO_KILL return value to return -EIO just like we do for the request based path. Note that dm-log-writes returned -ENOMEM in a few places, which now becomes -EIO instead. No consumer treats -ENOMEM special so this shouldn't be an issue (and it should use a mempool to start with to make guaranteed progress). Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/md/dm-raid1.c')
-rw-r--r--drivers/md/dm-raid1.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
index 5e30b08b91d9..d9c0c6a77eb5 100644
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -1207,14 +1207,14 @@ static int mirror_map(struct dm_target *ti, struct bio *bio)
1207 1207
1208 r = log->type->in_sync(log, dm_rh_bio_to_region(ms->rh, bio), 0); 1208 r = log->type->in_sync(log, dm_rh_bio_to_region(ms->rh, bio), 0);
1209 if (r < 0 && r != -EWOULDBLOCK) 1209 if (r < 0 && r != -EWOULDBLOCK)
1210 return r; 1210 return DM_MAPIO_KILL;
1211 1211
1212 /* 1212 /*
1213 * If region is not in-sync queue the bio. 1213 * If region is not in-sync queue the bio.
1214 */ 1214 */
1215 if (!r || (r == -EWOULDBLOCK)) { 1215 if (!r || (r == -EWOULDBLOCK)) {
1216 if (bio->bi_opf & REQ_RAHEAD) 1216 if (bio->bi_opf & REQ_RAHEAD)
1217 return -EIO; 1217 return DM_MAPIO_KILL;
1218 1218
1219 queue_bio(ms, bio, rw); 1219 queue_bio(ms, bio, rw);
1220 return DM_MAPIO_SUBMITTED; 1220 return DM_MAPIO_SUBMITTED;
@@ -1226,7 +1226,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio)
1226 */ 1226 */
1227 m = choose_mirror(ms, bio->bi_iter.bi_sector); 1227 m = choose_mirror(ms, bio->bi_iter.bi_sector);
1228 if (unlikely(!m)) 1228 if (unlikely(!m))
1229 return -EIO; 1229 return DM_MAPIO_KILL;
1230 1230
1231 dm_bio_record(&bio_record->details, bio); 1231 dm_bio_record(&bio_record->details, bio);
1232 bio_record->m = m; 1232 bio_record->m = m;