diff options
author | Paul Clements <paul.clements@steeleye.com> | 2006-10-03 04:15:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 11:04:17 -0400 |
commit | 9b1d1dac181d8c1b9492e05cee660a985d035a06 (patch) | |
tree | af12b1eaac4e0f7f3528ec26a223faeabed35845 /include/linux | |
parent | 76186dd8b73d2b7b9b4c8629b89c845e97009801 (diff) |
[PATCH] md: new sysfs interface for setting bits in the write-intent-bitmap
Add a new sysfs interface that allows the bitmap of an array to be dirtied.
The interface is write-only, and is used as follows:
echo "1000" > /sys/block/md2/md/bitmap
(dirty the bit for chunk 1000 [offset 0] in the in-memory and on-disk
bitmaps of array md2)
echo "1000-2000" > /sys/block/md1/md/bitmap
(dirty the bits for chunks 1000-2000 in md1's bitmap)
This is useful, for example, in cluster environments where you may need to
combine two disjoint bitmaps into one (following a server failure, after a
secondary server has taken over the array). By combining the bitmaps on
the two servers, a full resync can be avoided (This was discussed on the
list back on March 18, 2005, "[PATCH 1/2] md bitmap bug fixes" thread).
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/bitmap.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/raid/bitmap.h b/include/linux/raid/bitmap.h index 63df898fe2e9..84d887751855 100644 --- a/include/linux/raid/bitmap.h +++ b/include/linux/raid/bitmap.h | |||
@@ -265,6 +265,8 @@ int bitmap_update_sb(struct bitmap *bitmap); | |||
265 | int bitmap_setallbits(struct bitmap *bitmap); | 265 | int bitmap_setallbits(struct bitmap *bitmap); |
266 | void bitmap_write_all(struct bitmap *bitmap); | 266 | void bitmap_write_all(struct bitmap *bitmap); |
267 | 267 | ||
268 | void bitmap_dirty_bits(struct bitmap *bitmap, unsigned long s, unsigned long e); | ||
269 | |||
268 | /* these are exported */ | 270 | /* these are exported */ |
269 | int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, | 271 | int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, |
270 | unsigned long sectors, int behind); | 272 | unsigned long sectors, int behind); |