aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-io.h
diff options
context:
space:
mode:
authorMilan Broz <mbroz@redhat.com>2007-05-09 05:33:05 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-09 15:30:47 -0400
commitbf17ce3a604d943f29bf1bc1a66a4e0d2ad4ec96 (patch)
tree531058ab5ad63fb2e104bfadddbdbde080a0289b /drivers/md/dm-io.h
parent88be163abb5324bab09f5eff9646590eec5314eb (diff)
dm io: remove old interface
Remove old dm-io interface. Signed-off-by: Milan Broz <mbroz@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/md/dm-io.h')
-rw-r--r--drivers/md/dm-io.h51
1 files changed, 3 insertions, 48 deletions
diff --git a/drivers/md/dm-io.h b/drivers/md/dm-io.h
index 05b133825580..f647e2cceaa6 100644
--- a/drivers/md/dm-io.h
+++ b/drivers/md/dm-io.h
@@ -12,7 +12,7 @@
12struct io_region { 12struct io_region {
13 struct block_device *bdev; 13 struct block_device *bdev;
14 sector_t sector; 14 sector_t sector;
15 sector_t count; 15 sector_t count; /* If this is zero the region is ignored. */
16}; 16};
17 17
18struct page_list { 18struct page_list {
@@ -20,10 +20,6 @@ struct page_list {
20 struct page *page; 20 struct page *page;
21}; 21};
22 22
23/*
24 * 'error' is a bitset, with each bit indicating whether an error
25 * occurred doing io to the corresponding region.
26 */
27typedef void (*io_notify_fn)(unsigned long error, void *context); 23typedef void (*io_notify_fn)(unsigned long error, void *context);
28 24
29enum dm_io_mem_type { 25enum dm_io_mem_type {
@@ -63,16 +59,6 @@ struct dm_io_request {
63}; 59};
64 60
65/* 61/*
66 * Before anyone uses the IO interface they should call
67 * dm_io_get(), specifying roughly how many pages they are
68 * expecting to perform io on concurrently.
69 *
70 * This function may block.
71 */
72int dm_io_get(unsigned int num_pages);
73void dm_io_put(unsigned int num_pages);
74
75/*
76 * For async io calls, users can alternatively use the dm_io() function below 62 * For async io calls, users can alternatively use the dm_io() function below
77 * and dm_io_client_create() to create private mempools for the client. 63 * and dm_io_client_create() to create private mempools for the client.
78 * 64 *
@@ -83,40 +69,9 @@ int dm_io_client_resize(unsigned num_pages, struct dm_io_client *client);
83void dm_io_client_destroy(struct dm_io_client *client); 69void dm_io_client_destroy(struct dm_io_client *client);
84 70
85/* 71/*
86 * Synchronous IO.
87 *
88 * Please ensure that the rw flag in the next two functions is
89 * either READ or WRITE, ie. we don't take READA. Any
90 * regions with a zero count field will be ignored.
91 */
92int dm_io_sync(unsigned int num_regions, struct io_region *where, int rw,
93 struct page_list *pl, unsigned int offset,
94 unsigned long *error_bits);
95
96int dm_io_sync_bvec(unsigned int num_regions, struct io_region *where, int rw,
97 struct bio_vec *bvec, unsigned long *error_bits);
98
99int dm_io_sync_vm(unsigned int num_regions, struct io_region *where, int rw,
100 void *data, unsigned long *error_bits);
101
102/*
103 * Aynchronous IO.
104 *
105 * The 'where' array may be safely allocated on the stack since
106 * the function takes a copy.
107 */
108int dm_io_async(unsigned int num_regions, struct io_region *where, int rw,
109 struct page_list *pl, unsigned int offset,
110 io_notify_fn fn, void *context);
111
112int dm_io_async_bvec(unsigned int num_regions, struct io_region *where, int rw,
113 struct bio_vec *bvec, io_notify_fn fn, void *context);
114
115int dm_io_async_vm(unsigned int num_regions, struct io_region *where, int rw,
116 void *data, io_notify_fn fn, void *context);
117
118/*
119 * IO interface using private per-client pools. 72 * IO interface using private per-client pools.
73 * Each bit in the optional 'sync_error_bits' bitset indicates whether an
74 * error occurred doing io to the corresponding region.
120 */ 75 */
121int dm_io(struct dm_io_request *io_req, unsigned num_regions, 76int dm_io(struct dm_io_request *io_req, unsigned num_regions,
122 struct io_region *region, unsigned long *sync_error_bits); 77 struct io_region *region, unsigned long *sync_error_bits);