summaryrefslogtreecommitdiffstats
path: root/include/linux/raid
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-03-27 01:18:12 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-27 08:45:02 -0800
commitb578d55fdd80140f657130abd85aebeb345755fb (patch)
tree3737b88a25b3fb1e3347cd1c4c274336aee6a462 /include/linux/raid
parentf67055780caac6a99f43834795c43acf99eba6a6 (diff)
[PATCH] md: Only checkpoint expansion progress occasionally
Instead of checkpointing at each stripe, only checkpoint when a new write would overwrite uncheckpointed data. Block any write to the uncheckpointed area. Arbitrarily checkpoint at least every 3Meg. 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')
-rw-r--r--include/linux/raid/raid5.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/raid/raid5.h b/include/linux/raid/raid5.h
index abcdf0d0658..914af667044 100644
--- a/include/linux/raid/raid5.h
+++ b/include/linux/raid/raid5.h
@@ -217,6 +217,9 @@ struct raid5_private_data {
/* used during an expand */
sector_t expand_progress; /* MaxSector when no expand happening */
+ sector_t expand_lo; /* from here up to expand_progress it out-of-bounds
+ * as we haven't flushed the metadata yet
+ */
int previous_raid_disks;
struct list_head handle_list; /* stripes needing handling */