summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorNeilBrown2006-03-27 11:18:12 +0200
committerLinus Torvalds2006-03-27 18:45:02 +0200
commitb578d55fdd80140f657130abd85aebeb345755fb (patch)
tree3737b88a25b3fb1e3347cd1c4c274336aee6a462 /include/linux
parent[PATCH] md: Checkpoint and allow restart of raid5 reshape (diff)
downloadkernel-qcow2-linux-b578d55fdd80140f657130abd85aebeb345755fb.tar.gz
kernel-qcow2-linux-b578d55fdd80140f657130abd85aebeb345755fb.tar.xz
kernel-qcow2-linux-b578d55fdd80140f657130abd85aebeb345755fb.zip
[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')
-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 abcdf0d0658a..914af667044f 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 */