From 6e010a7185c42184f3ce2e82d0b82f86a03e2f72 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Mon, 25 Oct 2004 04:11:34 -0700 Subject: [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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/raid/multipath.h | 3 ++- include/linux/raid/raid1.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'include/linux') 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; -- cgit v1.2.3