diff options
author | NeilBrown <neilb@suse.de> | 2006-03-27 04:18:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-27 11:45:01 -0500 |
commit | f67055780caac6a99f43834795c43acf99eba6a6 (patch) | |
tree | 6b80e7b4cb300edb0910dbad1d840ff8e2f36ae5 /include/linux/raid/raid5.h | |
parent | 292695531ae4019bb15deedc121b218d1908b648 (diff) |
[PATCH] md: Checkpoint and allow restart of raid5 reshape
We allow the superblock to record an 'old' and a 'new' geometry, and a
position where any conversion is up to. The geometry allows for changing
chunksize, layout and level as well as number of devices.
When using verion-0.90 superblock, we convert the version to 0.91 while the
conversion is happening so that an old kernel will refuse the assemble the
array. For version-1, we use a feature bit for the same effect.
When starting an array we check for an incomplete reshape and restart the
reshape process if needed. If the reshape stopped at an awkward time (like
when updating the first stripe) we refuse to assemble the array, and let
user-space worry about it.
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/raid/raid5.h')
-rw-r--r-- | include/linux/raid/raid5.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/raid/raid5.h b/include/linux/raid/raid5.h index 55c738d50508..abcdf0d0658a 100644 --- a/include/linux/raid/raid5.h +++ b/include/linux/raid/raid5.h | |||
@@ -224,6 +224,7 @@ struct raid5_private_data { | |||
224 | struct list_head bitmap_list; /* stripes delaying awaiting bitmap update */ | 224 | struct list_head bitmap_list; /* stripes delaying awaiting bitmap update */ |
225 | atomic_t preread_active_stripes; /* stripes with scheduled io */ | 225 | atomic_t preread_active_stripes; /* stripes with scheduled io */ |
226 | 226 | ||
227 | atomic_t reshape_stripes; /* stripes with pending writes for reshape */ | ||
227 | /* unfortunately we need two cache names as we temporarily have | 228 | /* unfortunately we need two cache names as we temporarily have |
228 | * two caches. | 229 | * two caches. |
229 | */ | 230 | */ |