Commit d2a7ad29 authored by Kiyoshi Ueda's avatar Kiyoshi Ueda Committed by Linus Torvalds

[PATCH] dm: map and endio symbolic return codes

Update existing targets to use the new symbols for return values from target
map and end_io functions.

There is no effect on behaviour.

Test results:
Done build test without errors.
Signed-off-by: default avatarKiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
Cc: dm-devel@redhat.com
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 45cbcd79
...@@ -962,7 +962,7 @@ static int crypt_map(struct dm_target *ti, struct bio *bio, ...@@ -962,7 +962,7 @@ static int crypt_map(struct dm_target *ti, struct bio *bio,
atomic_set(&io->pending, 0); atomic_set(&io->pending, 0);
kcryptd_queue_io(io); kcryptd_queue_io(io);
return 0; return DM_MAPIO_SUBMITTED;
} }
static int crypt_status(struct dm_target *ti, status_type_t type, static int crypt_status(struct dm_target *ti, status_type_t type,
......
...@@ -77,7 +77,7 @@ static int linear_map(struct dm_target *ti, struct bio *bio, ...@@ -77,7 +77,7 @@ static int linear_map(struct dm_target *ti, struct bio *bio,
bio->bi_bdev = lc->dev->bdev; bio->bi_bdev = lc->dev->bdev;
bio->bi_sector = lc->start + (bio->bi_sector - ti->begin); bio->bi_sector = lc->start + (bio->bi_sector - ti->begin);
return 1; return DM_MAPIO_REMAPPED;
} }
static int linear_status(struct dm_target *ti, status_type_t type, static int linear_status(struct dm_target *ti, status_type_t type,
......
...@@ -285,7 +285,7 @@ failed: ...@@ -285,7 +285,7 @@ failed:
static int map_io(struct multipath *m, struct bio *bio, struct mpath_io *mpio, static int map_io(struct multipath *m, struct bio *bio, struct mpath_io *mpio,
unsigned was_queued) unsigned was_queued)
{ {
int r = 1; int r = DM_MAPIO_REMAPPED;
unsigned long flags; unsigned long flags;
struct pgpath *pgpath; struct pgpath *pgpath;
...@@ -310,7 +310,7 @@ static int map_io(struct multipath *m, struct bio *bio, struct mpath_io *mpio, ...@@ -310,7 +310,7 @@ static int map_io(struct multipath *m, struct bio *bio, struct mpath_io *mpio,
!m->queue_io) !m->queue_io)
queue_work(kmultipathd, &m->process_queued_ios); queue_work(kmultipathd, &m->process_queued_ios);
pgpath = NULL; pgpath = NULL;
r = 0; r = DM_MAPIO_SUBMITTED;
} else if (!pgpath) } else if (!pgpath)
r = -EIO; /* Failed */ r = -EIO; /* Failed */
else else
...@@ -372,7 +372,7 @@ static void dispatch_queued_ios(struct multipath *m) ...@@ -372,7 +372,7 @@ static void dispatch_queued_ios(struct multipath *m)
r = map_io(m, bio, mpio, 1); r = map_io(m, bio, mpio, 1);
if (r < 0) if (r < 0)
bio_endio(bio, bio->bi_size, r); bio_endio(bio, bio->bi_size, r);
else if (r == 1) else if (r == DM_MAPIO_REMAPPED)
generic_make_request(bio); generic_make_request(bio);
bio = next; bio = next;
...@@ -1042,7 +1042,7 @@ static int do_end_io(struct multipath *m, struct bio *bio, ...@@ -1042,7 +1042,7 @@ static int do_end_io(struct multipath *m, struct bio *bio,
queue_work(kmultipathd, &m->process_queued_ios); queue_work(kmultipathd, &m->process_queued_ios);
spin_unlock_irqrestore(&m->lock, flags); spin_unlock_irqrestore(&m->lock, flags);
return 1; /* io not complete */ return DM_ENDIO_INCOMPLETE; /* io not complete */
} }
static int multipath_end_io(struct dm_target *ti, struct bio *bio, static int multipath_end_io(struct dm_target *ti, struct bio *bio,
...@@ -1060,7 +1060,7 @@ static int multipath_end_io(struct dm_target *ti, struct bio *bio, ...@@ -1060,7 +1060,7 @@ static int multipath_end_io(struct dm_target *ti, struct bio *bio,
if (ps->type->end_io) if (ps->type->end_io)
ps->type->end_io(ps, &pgpath->path); ps->type->end_io(ps, &pgpath->path);
} }
if (r <= 0) if (r != DM_ENDIO_INCOMPLETE)
mempool_free(mpio, m->mpio_pool); mempool_free(mpio, m->mpio_pool);
return r; return r;
......
...@@ -1137,7 +1137,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio, ...@@ -1137,7 +1137,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio,
if (rw == WRITE) { if (rw == WRITE) {
queue_bio(ms, bio, rw); queue_bio(ms, bio, rw);
return 0; return DM_MAPIO_SUBMITTED;
} }
r = ms->rh.log->type->in_sync(ms->rh.log, r = ms->rh.log->type->in_sync(ms->rh.log,
...@@ -1146,7 +1146,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio, ...@@ -1146,7 +1146,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio,
return r; return r;
if (r == -EWOULDBLOCK) /* FIXME: ugly */ if (r == -EWOULDBLOCK) /* FIXME: ugly */
r = 0; r = DM_MAPIO_SUBMITTED;
/* /*
* We don't want to fast track a recovery just for a read * We don't want to fast track a recovery just for a read
...@@ -1159,7 +1159,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio, ...@@ -1159,7 +1159,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio,
if (!r) { if (!r) {
/* Pass this io over to the daemon */ /* Pass this io over to the daemon */
queue_bio(ms, bio, rw); queue_bio(ms, bio, rw);
return 0; return DM_MAPIO_SUBMITTED;
} }
m = choose_mirror(ms, bio->bi_sector); m = choose_mirror(ms, bio->bi_sector);
...@@ -1167,7 +1167,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio, ...@@ -1167,7 +1167,7 @@ static int mirror_map(struct dm_target *ti, struct bio *bio,
return -EIO; return -EIO;
map_bio(ms, m, bio); map_bio(ms, m, bio);
return 1; return DM_MAPIO_REMAPPED;
} }
static int mirror_end_io(struct dm_target *ti, struct bio *bio, static int mirror_end_io(struct dm_target *ti, struct bio *bio,
......
...@@ -868,7 +868,7 @@ static int snapshot_map(struct dm_target *ti, struct bio *bio, ...@@ -868,7 +868,7 @@ static int snapshot_map(struct dm_target *ti, struct bio *bio,
{ {
struct exception *e; struct exception *e;
struct dm_snapshot *s = (struct dm_snapshot *) ti->private; struct dm_snapshot *s = (struct dm_snapshot *) ti->private;
int r = 1; int r = DM_MAPIO_REMAPPED;
chunk_t chunk; chunk_t chunk;
struct pending_exception *pe = NULL; struct pending_exception *pe = NULL;
...@@ -914,7 +914,7 @@ static int snapshot_map(struct dm_target *ti, struct bio *bio, ...@@ -914,7 +914,7 @@ static int snapshot_map(struct dm_target *ti, struct bio *bio,
remap_exception(s, &pe->e, bio); remap_exception(s, &pe->e, bio);
bio_list_add(&pe->snapshot_bios, bio); bio_list_add(&pe->snapshot_bios, bio);
r = 0; r = DM_MAPIO_SUBMITTED;
if (!pe->started) { if (!pe->started) {
/* this is protected by snap->lock */ /* this is protected by snap->lock */
...@@ -992,7 +992,7 @@ static int snapshot_status(struct dm_target *ti, status_type_t type, ...@@ -992,7 +992,7 @@ static int snapshot_status(struct dm_target *ti, status_type_t type,
*---------------------------------------------------------------*/ *---------------------------------------------------------------*/
static int __origin_write(struct list_head *snapshots, struct bio *bio) static int __origin_write(struct list_head *snapshots, struct bio *bio)
{ {
int r = 1, first = 0; int r = DM_MAPIO_REMAPPED, first = 0;
struct dm_snapshot *snap; struct dm_snapshot *snap;
struct exception *e; struct exception *e;
struct pending_exception *pe, *next_pe, *primary_pe = NULL; struct pending_exception *pe, *next_pe, *primary_pe = NULL;
...@@ -1050,7 +1050,7 @@ static int __origin_write(struct list_head *snapshots, struct bio *bio) ...@@ -1050,7 +1050,7 @@ static int __origin_write(struct list_head *snapshots, struct bio *bio)
bio_list_add(&primary_pe->origin_bios, bio); bio_list_add(&primary_pe->origin_bios, bio);
r = 0; r = DM_MAPIO_SUBMITTED;
} }
if (!pe->primary_pe) { if (!pe->primary_pe) {
...@@ -1099,7 +1099,7 @@ static int __origin_write(struct list_head *snapshots, struct bio *bio) ...@@ -1099,7 +1099,7 @@ static int __origin_write(struct list_head *snapshots, struct bio *bio)
static int do_origin(struct dm_dev *origin, struct bio *bio) static int do_origin(struct dm_dev *origin, struct bio *bio)
{ {
struct origin *o; struct origin *o;
int r = 1; int r = DM_MAPIO_REMAPPED;
down_read(&_origins_lock); down_read(&_origins_lock);
o = __lookup_origin(origin->bdev); o = __lookup_origin(origin->bdev);
...@@ -1156,7 +1156,7 @@ static int origin_map(struct dm_target *ti, struct bio *bio, ...@@ -1156,7 +1156,7 @@ static int origin_map(struct dm_target *ti, struct bio *bio,
return -EOPNOTSUPP; return -EOPNOTSUPP;
/* Only tell snapshots if this is a write */ /* Only tell snapshots if this is a write */
return (bio_rw(bio) == WRITE) ? do_origin(dev, bio) : 1; return (bio_rw(bio) == WRITE) ? do_origin(dev, bio) : DM_MAPIO_REMAPPED;
} }
#define min_not_zero(l, r) (l == 0) ? r : ((r == 0) ? l : min(l, r)) #define min_not_zero(l, r) (l == 0) ? r : ((r == 0) ? l : min(l, r))
......
...@@ -186,7 +186,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio, ...@@ -186,7 +186,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio,
bio->bi_bdev = sc->stripe[stripe].dev->bdev; bio->bi_bdev = sc->stripe[stripe].dev->bdev;
bio->bi_sector = sc->stripe[stripe].physical_start + bio->bi_sector = sc->stripe[stripe].physical_start +
(chunk << sc->chunk_shift) + (offset & sc->chunk_mask); (chunk << sc->chunk_shift) + (offset & sc->chunk_mask);
return 1; return DM_MAPIO_REMAPPED;
} }
static int stripe_status(struct dm_target *ti, static int stripe_status(struct dm_target *ti,
......
...@@ -46,7 +46,7 @@ static int zero_map(struct dm_target *ti, struct bio *bio, ...@@ -46,7 +46,7 @@ static int zero_map(struct dm_target *ti, struct bio *bio,
bio_endio(bio, bio->bi_size, 0); bio_endio(bio, bio->bi_size, 0);
/* accepted bio, don't make new request */ /* accepted bio, don't make new request */
return 0; return DM_MAPIO_SUBMITTED;
} }
static struct target_type zero_target = { static struct target_type zero_target = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment