aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-kcopyd.h
diff options
context:
space:
mode:
authorAlasdair G Kergon <agk@redhat.com>2008-04-24 16:55:00 -0400
committerAlasdair G Kergon <agk@redhat.com>2008-04-25 08:26:54 -0400
commit2d1e580afe23287871529ce54429e249809525a1 (patch)
tree82a0e8b442308c9b9bcf8f8d59c405950dd827d5 /drivers/md/dm-kcopyd.h
parent0da336e5fab75c712ba8c67f3135d5a20528465f (diff)
dm kcopyd: rename
Rename kcopyd.[ch] to dm-kcopyd.[ch]. Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md/dm-kcopyd.h')
-rw-r--r--drivers/md/dm-kcopyd.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/md/dm-kcopyd.h b/drivers/md/dm-kcopyd.h
new file mode 100644
index 000000000000..d3057846b0b0
--- /dev/null
+++ b/drivers/md/dm-kcopyd.h
@@ -0,0 +1,47 @@
1/*
2 * Copyright (C) 2001 - 2003 Sistina Software
3 * Copyright (C) 2004 - 2008 Red Hat, Inc. All rights reserved.
4 *
5 * kcopyd provides a simple interface for copying an area of one
6 * block-device to one or more other block-devices, either synchronous
7 * or with an asynchronous completion notification.
8 *
9 * This file is released under the GPL.
10 */
11
12#ifndef _LINUX_DM_KCOPYD_H
13#define _LINUX_DM_KCOPYD_H
14
15#ifdef __KERNEL__
16
17#include "dm-io.h"
18
19/* FIXME: make this configurable */
20#define DM_KCOPYD_MAX_REGIONS 8
21
22#define DM_KCOPYD_IGNORE_ERROR 1
23
24/*
25 * To use kcopyd you must first create a dm_kcopyd_client object.
26 */
27struct dm_kcopyd_client;
28int dm_kcopyd_client_create(unsigned num_pages,
29 struct dm_kcopyd_client **result);
30void dm_kcopyd_client_destroy(struct dm_kcopyd_client *kc);
31
32/*
33 * Submit a copy job to kcopyd. This is built on top of the
34 * previous three fns.
35 *
36 * read_err is a boolean,
37 * write_err is a bitset, with 1 bit for each destination region
38 */
39typedef void (*dm_kcopyd_notify_fn)(int read_err, unsigned long write_err,
40 void *context);
41
42int dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from,
43 unsigned num_dests, struct dm_io_region *dests,
44 unsigned flags, dm_kcopyd_notify_fn fn, void *context);
45
46#endif /* __KERNEL__ */
47#endif /* _LINUX_DM_KCOPYD_H */