summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2004-10-25 04:11:34 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-10-25 04:11:34 -0700
commit6e010a7185c42184f3ce2e82d0b82f86a03e2f72 (patch)
treec6ff70930682b6978210a95482c718804fda9e3c /include/linux
parent92952632eca1d2bd4caea215a0006e385bb59f4e (diff)
[PATCH] md: make retry_list non-global in raid1 and multipath
Both raid1 and multipath have a "retry_list" which is global, so all raid1 arrays (for example) us the same list. This is rather ugly, and it is simple enough to make it per-array, so this patch does that. It also changes to multipath code to use list.h lists instead of roll-your-own. Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/raid/multipath.h3
-rw-r--r--include/linux/raid/raid1.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/raid/multipath.h b/include/linux/raid/multipath.h
index a8db266ab705..6f53fc177a47 100644
--- a/include/linux/raid/multipath.h
+++ b/include/linux/raid/multipath.h
@@ -13,6 +13,7 @@ struct multipath_private_data {
int raid_disks;
int working_disks;
spinlock_t device_lock;
+ struct list_head retry_list;
mempool_t *pool;
};
@@ -36,6 +37,6 @@ struct multipath_bh {
struct bio *master_bio;
struct bio bio;
int path;
- struct multipath_bh *next_mp; /* next for retry */
+ struct list_head retry_list;
};
#endif
diff --git a/include/linux/raid/raid1.h b/include/linux/raid/raid1.h
index 50965d9680b6..abbfdd9afe1e 100644
--- a/include/linux/raid/raid1.h
+++ b/include/linux/raid/raid1.h
@@ -35,6 +35,7 @@ struct r1_private_data_s {
sector_t next_seq_sect;
spinlock_t device_lock;
+ struct list_head retry_list;
/* for use when syncing mirrors: */
spinlock_t resync_lock;