summaryrefslogtreecommitdiff
path: root/drivers/md/raid1.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-02-06 01:39:52 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-06 10:41:18 -0800
commitc620727779f7cc8ea96efb71f0651a26349e59c1 (patch)
tree777abdad9c9ef10cb4df5c0efc736e6c64851ed8 /drivers/md/raid1.c
parentc303da6d713b87b7b3f999f5acce8ecc76ff1adb (diff)
downloadlwn-c620727779f7cc8ea96efb71f0651a26349e59c1.tar.gz
lwn-c620727779f7cc8ea96efb71f0651a26349e59c1.zip
md: allow a maximum extent to be set for resyncing
This allows userspace to control resync/reshape progress and synchronise it with other activities, such as shared access in a SAN, or backing up critical sections during a tricky reshape. Writing a number of sectors (which must be a multiple of the chunk size if such is meaningful) causes a resync to pause when it gets to that point. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r--drivers/md/raid1.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index e0b8d0dd7a87..ae7c15207df5 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -1767,6 +1767,8 @@ static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, i
return rv;
}
+ if (max_sector > mddev->resync_max)
+ max_sector = mddev->resync_max; /* Don't do IO beyond here */
nr_sectors = 0;
sync_blocks = 0;
do {