Commit 22a1ceb1e6a7fbce95a1531ff10bb4fb036d4a37
Committed by
Alasdair G Kergon
1 parent
e01fd7eeb0
Exists in
master
and in
39 other branches
dm io: clean interface
Clean up the dm-io interface to prepare for publishing it in include/linux. Signed-off-by: Heinz Mauelshagen <hjm@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Showing 8 changed files with 33 additions and 25 deletions Side-by-side Diff
drivers/md/dm-exception-store.c
... | ... | @@ -159,7 +159,7 @@ |
159 | 159 | } |
160 | 160 | |
161 | 161 | struct mdata_req { |
162 | - struct io_region *where; | |
162 | + struct dm_io_region *where; | |
163 | 163 | struct dm_io_request *io_req; |
164 | 164 | struct work_struct work; |
165 | 165 | int result; |
... | ... | @@ -177,7 +177,7 @@ |
177 | 177 | */ |
178 | 178 | static int chunk_io(struct pstore *ps, uint32_t chunk, int rw, int metadata) |
179 | 179 | { |
180 | - struct io_region where = { | |
180 | + struct dm_io_region where = { | |
181 | 181 | .bdev = ps->snap->cow->bdev, |
182 | 182 | .sector = ps->snap->chunk_size * chunk, |
183 | 183 | .count = ps->snap->chunk_size, |
drivers/md/dm-io.c
... | ... | @@ -6,6 +6,7 @@ |
6 | 6 | */ |
7 | 7 | |
8 | 8 | #include "dm-io.h" |
9 | +#include "dm.h" | |
9 | 10 | |
10 | 11 | #include <linux/bio.h> |
11 | 12 | #include <linux/mempool.h> |
... | ... | @@ -271,7 +272,7 @@ |
271 | 272 | /*----------------------------------------------------------------- |
272 | 273 | * IO routines that accept a list of pages. |
273 | 274 | *---------------------------------------------------------------*/ |
274 | -static void do_region(int rw, unsigned int region, struct io_region *where, | |
275 | +static void do_region(int rw, unsigned region, struct dm_io_region *where, | |
275 | 276 | struct dpages *dp, struct io *io) |
276 | 277 | { |
277 | 278 | struct bio *bio; |
... | ... | @@ -320,7 +321,7 @@ |
320 | 321 | } |
321 | 322 | |
322 | 323 | static void dispatch_io(int rw, unsigned int num_regions, |
323 | - struct io_region *where, struct dpages *dp, | |
324 | + struct dm_io_region *where, struct dpages *dp, | |
324 | 325 | struct io *io, int sync) |
325 | 326 | { |
326 | 327 | int i; |
... | ... | @@ -347,7 +348,7 @@ |
347 | 348 | } |
348 | 349 | |
349 | 350 | static int sync_io(struct dm_io_client *client, unsigned int num_regions, |
350 | - struct io_region *where, int rw, struct dpages *dp, | |
351 | + struct dm_io_region *where, int rw, struct dpages *dp, | |
351 | 352 | unsigned long *error_bits) |
352 | 353 | { |
353 | 354 | struct io io; |
... | ... | @@ -384,7 +385,7 @@ |
384 | 385 | } |
385 | 386 | |
386 | 387 | static int async_io(struct dm_io_client *client, unsigned int num_regions, |
387 | - struct io_region *where, int rw, struct dpages *dp, | |
388 | + struct dm_io_region *where, int rw, struct dpages *dp, | |
388 | 389 | io_notify_fn fn, void *context) |
389 | 390 | { |
390 | 391 | struct io *io; |
... | ... | @@ -438,7 +439,7 @@ |
438 | 439 | * New collapsed (a)synchronous interface |
439 | 440 | */ |
440 | 441 | int dm_io(struct dm_io_request *io_req, unsigned num_regions, |
441 | - struct io_region *where, unsigned long *sync_error_bits) | |
442 | + struct dm_io_region *where, unsigned long *sync_error_bits) | |
442 | 443 | { |
443 | 444 | int r; |
444 | 445 | struct dpages dp; |
drivers/md/dm-io.h
1 | 1 | /* |
2 | 2 | * Copyright (C) 2003 Sistina Software |
3 | + * Copyright (C) 2004 - 2008 Red Hat, Inc. All rights reserved. | |
3 | 4 | * |
5 | + * Device-Mapper low-level I/O. | |
6 | + * | |
4 | 7 | * This file is released under the GPL. |
5 | 8 | */ |
6 | 9 | |
7 | -#ifndef _DM_IO_H | |
8 | -#define _DM_IO_H | |
10 | +#ifndef _LINUX_DM_IO_H | |
11 | +#define _LINUX_DM_IO_H | |
9 | 12 | |
10 | -#include "dm.h" | |
13 | +#ifdef __KERNEL__ | |
11 | 14 | |
12 | -struct io_region { | |
15 | +#include <linux/types.h> | |
16 | + | |
17 | +struct dm_io_region { | |
13 | 18 | struct block_device *bdev; |
14 | 19 | sector_t sector; |
15 | 20 | sector_t count; /* If this is zero the region is ignored. */ |
16 | 21 | |
... | ... | @@ -74,7 +79,8 @@ |
74 | 79 | * error occurred doing io to the corresponding region. |
75 | 80 | */ |
76 | 81 | int dm_io(struct dm_io_request *io_req, unsigned num_regions, |
77 | - struct io_region *region, unsigned long *sync_error_bits); | |
82 | + struct dm_io_region *region, unsigned long *sync_error_bits); | |
78 | 83 | |
79 | -#endif | |
84 | +#endif /* __KERNEL__ */ | |
85 | +#endif /* _LINUX_DM_IO_H */ |
drivers/md/dm-log.c
drivers/md/dm-raid1.c
... | ... | @@ -788,7 +788,7 @@ |
788 | 788 | { |
789 | 789 | int r; |
790 | 790 | unsigned int i; |
791 | - struct io_region from, to[KCOPYD_MAX_REGIONS], *dest; | |
791 | + struct dm_io_region from, to[KCOPYD_MAX_REGIONS], *dest; | |
792 | 792 | struct mirror *m; |
793 | 793 | unsigned long flags = 0; |
794 | 794 | |
... | ... | @@ -907,7 +907,7 @@ |
907 | 907 | bio->bi_sector = map_sector(m, bio); |
908 | 908 | } |
909 | 909 | |
910 | -static void map_region(struct io_region *io, struct mirror *m, | |
910 | +static void map_region(struct dm_io_region *io, struct mirror *m, | |
911 | 911 | struct bio *bio) |
912 | 912 | { |
913 | 913 | io->bdev = m->dev->bdev; |
... | ... | @@ -949,7 +949,7 @@ |
949 | 949 | /* Asynchronous read. */ |
950 | 950 | static void read_async_bio(struct mirror *m, struct bio *bio) |
951 | 951 | { |
952 | - struct io_region io; | |
952 | + struct dm_io_region io; | |
953 | 953 | struct dm_io_request io_req = { |
954 | 954 | .bi_rw = READ, |
955 | 955 | .mem.type = DM_IO_BVEC, |
... | ... | @@ -1105,7 +1105,7 @@ |
1105 | 1105 | static void do_write(struct mirror_set *ms, struct bio *bio) |
1106 | 1106 | { |
1107 | 1107 | unsigned int i; |
1108 | - struct io_region io[ms->nr_mirrors], *dest = io; | |
1108 | + struct dm_io_region io[ms->nr_mirrors], *dest = io; | |
1109 | 1109 | struct mirror *m; |
1110 | 1110 | struct dm_io_request io_req = { |
1111 | 1111 | .bi_rw = WRITE, |
drivers/md/dm-snap.c
... | ... | @@ -824,7 +824,7 @@ |
824 | 824 | static void start_copy(struct dm_snap_pending_exception *pe) |
825 | 825 | { |
826 | 826 | struct dm_snapshot *s = pe->snap; |
827 | - struct io_region src, dest; | |
827 | + struct dm_io_region src, dest; | |
828 | 828 | struct block_device *bdev = s->origin->bdev; |
829 | 829 | sector_t dev_size; |
830 | 830 |
drivers/md/kcopyd.c
... | ... | @@ -25,6 +25,7 @@ |
25 | 25 | #include <linux/mutex.h> |
26 | 26 | |
27 | 27 | #include "kcopyd.h" |
28 | +#include "dm.h" | |
28 | 29 | |
29 | 30 | static struct workqueue_struct *_kcopyd_wq; |
30 | 31 | static struct work_struct _kcopyd_work; |
31 | 32 | |
... | ... | @@ -175,13 +176,13 @@ |
175 | 176 | * Either READ or WRITE |
176 | 177 | */ |
177 | 178 | int rw; |
178 | - struct io_region source; | |
179 | + struct dm_io_region source; | |
179 | 180 | |
180 | 181 | /* |
181 | 182 | * The destinations for the transfer. |
182 | 183 | */ |
183 | 184 | unsigned int num_dests; |
184 | - struct io_region dests[KCOPYD_MAX_REGIONS]; | |
185 | + struct dm_io_region dests[KCOPYD_MAX_REGIONS]; | |
185 | 186 | |
186 | 187 | sector_t offset; |
187 | 188 | unsigned int nr_pages; |
... | ... | @@ -526,8 +527,8 @@ |
526 | 527 | segment_complete(0, 0u, job); |
527 | 528 | } |
528 | 529 | |
529 | -int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from, | |
530 | - unsigned int num_dests, struct io_region *dests, | |
530 | +int kcopyd_copy(struct kcopyd_client *kc, struct dm_io_region *from, | |
531 | + unsigned int num_dests, struct dm_io_region *dests, | |
531 | 532 | unsigned int flags, kcopyd_notify_fn fn, void *context) |
532 | 533 | { |
533 | 534 | struct kcopyd_job *job; |
drivers/md/kcopyd.h
... | ... | @@ -35,8 +35,8 @@ |
35 | 35 | typedef void (*kcopyd_notify_fn)(int read_err, unsigned long write_err, |
36 | 36 | void *context); |
37 | 37 | |
38 | -int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from, | |
39 | - unsigned int num_dests, struct io_region *dests, | |
38 | +int kcopyd_copy(struct kcopyd_client *kc, struct dm_io_region *from, | |
39 | + unsigned num_dests, struct dm_io_region *dests, | |
40 | 40 | unsigned int flags, kcopyd_notify_fn fn, void *context); |
41 | 41 | |
42 | 42 | #endif |