From: Heinz Mauelshagen Clean up the dm-io interface to prepare for publishing it in include/linux. Signed-off-by: Heinz Mauelshagen Signed-off-by: Alasdair G Kergon --- drivers/md/dm-exception-store.c | 4 ++-- drivers/md/dm-io.c | 11 ++++++----- drivers/md/dm-io.h | 18 ++++++++++++------ drivers/md/dm-log.c | 2 +- drivers/md/dm-raid1.c | 8 ++++---- drivers/md/dm-snap.c | 2 +- drivers/md/kcopyd.c | 9 +++++---- drivers/md/kcopyd.h | 4 ++-- 8 files changed, 33 insertions(+), 25 deletions(-) Index: linux-2.6.25/drivers/md/dm-exception-store.c =================================================================== --- linux-2.6.25.orig/drivers/md/dm-exception-store.c 2008-04-24 18:00:16.000000000 +0100 +++ linux-2.6.25/drivers/md/dm-exception-store.c 2008-04-24 18:00:28.000000000 +0100 @@ -159,7 +159,7 @@ static void free_area(struct pstore *ps) } struct mdata_req { - struct io_region *where; + struct dm_io_region *where; struct dm_io_request *io_req; struct work_struct work; int result; @@ -177,7 +177,7 @@ static void do_metadata(struct work_stru */ static int chunk_io(struct pstore *ps, uint32_t chunk, int rw, int metadata) { - struct io_region where = { + struct dm_io_region where = { .bdev = ps->snap->cow->bdev, .sector = ps->snap->chunk_size * chunk, .count = ps->snap->chunk_size, Index: linux-2.6.25/drivers/md/dm-io.c =================================================================== --- linux-2.6.25.orig/drivers/md/dm-io.c 2008-04-24 18:00:27.000000000 +0100 +++ linux-2.6.25/drivers/md/dm-io.c 2008-04-24 18:00:28.000000000 +0100 @@ -6,6 +6,7 @@ */ #include "dm-io.h" +#include "dm.h" #include #include @@ -271,7 +272,7 @@ static void km_dp_init(struct dpages *dp /*----------------------------------------------------------------- * IO routines that accept a list of pages. *---------------------------------------------------------------*/ -static void do_region(int rw, unsigned int region, struct io_region *where, +static void do_region(int rw, unsigned region, struct dm_io_region *where, struct dpages *dp, struct io *io) { struct bio *bio; @@ -320,7 +321,7 @@ static void do_region(int rw, unsigned i } static void dispatch_io(int rw, unsigned int num_regions, - struct io_region *where, struct dpages *dp, + struct dm_io_region *where, struct dpages *dp, struct io *io, int sync) { int i; @@ -347,7 +348,7 @@ static void dispatch_io(int rw, unsigned } static int sync_io(struct dm_io_client *client, unsigned int num_regions, - struct io_region *where, int rw, struct dpages *dp, + struct dm_io_region *where, int rw, struct dpages *dp, unsigned long *error_bits) { struct io io; @@ -384,7 +385,7 @@ static int sync_io(struct dm_io_client * } static int async_io(struct dm_io_client *client, unsigned int num_regions, - struct io_region *where, int rw, struct dpages *dp, + struct dm_io_region *where, int rw, struct dpages *dp, io_notify_fn fn, void *context) { struct io *io; @@ -438,7 +439,7 @@ static int dp_init(struct dm_io_request * New collapsed (a)synchronous interface */ int dm_io(struct dm_io_request *io_req, unsigned num_regions, - struct io_region *where, unsigned long *sync_error_bits) + struct dm_io_region *where, unsigned long *sync_error_bits) { int r; struct dpages dp; Index: linux-2.6.25/drivers/md/dm-io.h =================================================================== --- linux-2.6.25.orig/drivers/md/dm-io.h 2008-04-24 17:43:47.000000000 +0100 +++ linux-2.6.25/drivers/md/dm-io.h 2008-04-24 18:00:28.000000000 +0100 @@ -1,15 +1,20 @@ /* * Copyright (C) 2003 Sistina Software + * Copyright (C) 2004 - 2008 Red Hat, Inc. All rights reserved. + * + * Device-Mapper low-level I/O. * * This file is released under the GPL. */ -#ifndef _DM_IO_H -#define _DM_IO_H +#ifndef _LINUX_DM_IO_H +#define _LINUX_DM_IO_H + +#ifdef __KERNEL__ -#include "dm.h" +#include -struct io_region { +struct dm_io_region { struct block_device *bdev; sector_t sector; sector_t count; /* If this is zero the region is ignored. */ @@ -74,6 +79,7 @@ void dm_io_client_destroy(struct dm_io_c * error occurred doing io to the corresponding region. */ int dm_io(struct dm_io_request *io_req, unsigned num_regions, - struct io_region *region, unsigned long *sync_error_bits); + struct dm_io_region *region, unsigned long *sync_error_bits); -#endif +#endif /* __KERNEL__ */ +#endif /* _LINUX_DM_IO_H */ Index: linux-2.6.25/drivers/md/dm-log.c =================================================================== --- linux-2.6.25.orig/drivers/md/dm-log.c 2008-04-24 18:00:26.000000000 +0100 +++ linux-2.6.25/drivers/md/dm-log.c 2008-04-24 18:00:28.000000000 +0100 @@ -208,7 +208,7 @@ struct log_c { struct dm_dev *log_dev; struct log_header header; - struct io_region header_location; + struct dm_io_region header_location; struct log_header *disk_header; }; Index: linux-2.6.25/drivers/md/dm-raid1.c =================================================================== --- linux-2.6.25.orig/drivers/md/dm-raid1.c 2008-04-24 18:00:26.000000000 +0100 +++ linux-2.6.25/drivers/md/dm-raid1.c 2008-04-24 18:00:28.000000000 +0100 @@ -788,7 +788,7 @@ static int recover(struct mirror_set *ms { int r; unsigned int i; - struct io_region from, to[KCOPYD_MAX_REGIONS], *dest; + struct dm_io_region from, to[KCOPYD_MAX_REGIONS], *dest; struct mirror *m; unsigned long flags = 0; @@ -907,7 +907,7 @@ static void map_bio(struct mirror *m, st bio->bi_sector = map_sector(m, bio); } -static void map_region(struct io_region *io, struct mirror *m, +static void map_region(struct dm_io_region *io, struct mirror *m, struct bio *bio) { io->bdev = m->dev->bdev; @@ -949,7 +949,7 @@ static void read_callback(unsigned long /* Asynchronous read. */ static void read_async_bio(struct mirror *m, struct bio *bio) { - struct io_region io; + struct dm_io_region io; struct dm_io_request io_req = { .bi_rw = READ, .mem.type = DM_IO_BVEC, @@ -1105,7 +1105,7 @@ out: static void do_write(struct mirror_set *ms, struct bio *bio) { unsigned int i; - struct io_region io[ms->nr_mirrors], *dest = io; + struct dm_io_region io[ms->nr_mirrors], *dest = io; struct mirror *m; struct dm_io_request io_req = { .bi_rw = WRITE, Index: linux-2.6.25/drivers/md/dm-snap.c =================================================================== --- linux-2.6.25.orig/drivers/md/dm-snap.c 2008-04-24 18:00:26.000000000 +0100 +++ linux-2.6.25/drivers/md/dm-snap.c 2008-04-24 18:00:28.000000000 +0100 @@ -824,7 +824,7 @@ static void copy_callback(int read_err, static void start_copy(struct dm_snap_pending_exception *pe) { struct dm_snapshot *s = pe->snap; - struct io_region src, dest; + struct dm_io_region src, dest; struct block_device *bdev = s->origin->bdev; sector_t dev_size; Index: linux-2.6.25/drivers/md/kcopyd.c =================================================================== --- linux-2.6.25.orig/drivers/md/kcopyd.c 2008-04-24 17:43:47.000000000 +0100 +++ linux-2.6.25/drivers/md/kcopyd.c 2008-04-24 18:00:28.000000000 +0100 @@ -25,6 +25,7 @@ #include #include "kcopyd.h" +#include "dm.h" static struct workqueue_struct *_kcopyd_wq; static struct work_struct _kcopyd_work; @@ -175,13 +176,13 @@ struct kcopyd_job { * Either READ or WRITE */ int rw; - struct io_region source; + struct dm_io_region source; /* * The destinations for the transfer. */ unsigned int num_dests; - struct io_region dests[KCOPYD_MAX_REGIONS]; + struct dm_io_region dests[KCOPYD_MAX_REGIONS]; sector_t offset; unsigned int nr_pages; @@ -526,8 +527,8 @@ static void split_job(struct kcopyd_job segment_complete(0, 0u, job); } -int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from, - unsigned int num_dests, struct io_region *dests, +int kcopyd_copy(struct kcopyd_client *kc, struct dm_io_region *from, + unsigned int num_dests, struct dm_io_region *dests, unsigned int flags, kcopyd_notify_fn fn, void *context) { struct kcopyd_job *job; Index: linux-2.6.25/drivers/md/kcopyd.h =================================================================== --- linux-2.6.25.orig/drivers/md/kcopyd.h 2008-04-24 17:43:47.000000000 +0100 +++ linux-2.6.25/drivers/md/kcopyd.h 2008-04-24 18:00:28.000000000 +0100 @@ -35,8 +35,8 @@ void kcopyd_client_destroy(struct kcopyd typedef void (*kcopyd_notify_fn)(int read_err, unsigned long write_err, void *context); -int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from, - unsigned int num_dests, struct io_region *dests, +int kcopyd_copy(struct kcopyd_client *kc, struct dm_io_region *from, + unsigned num_dests, struct dm_io_region *dests, unsigned int flags, kcopyd_notify_fn fn, void *context); #endif