diff options
| author | Neil Brown <neilb@cse.unsw.edu.au> | 2004-10-25 04:11:34 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-25 04:11:34 -0700 |
| commit | 6e010a7185c42184f3ce2e82d0b82f86a03e2f72 (patch) | |
| tree | c6ff70930682b6978210a95482c718804fda9e3c /include/linux | |
| parent | 92952632eca1d2bd4caea215a0006e385bb59f4e (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.h | 3 | ||||
| -rw-r--r-- | include/linux/raid/raid1.h | 1 |
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; |
