summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-01-09 08:31:05 +1100
committerNeilBrown <neilb@suse.de>2009-01-09 08:31:05 +1100
commit538452700d95480c16e7aa6b10ff77cd937d33f4 (patch)
treef0a25315e64ee38e59cefca1fb3bd064ffaedc46 /drivers
parent9e42d0cf5020aaf217433cad1a224745241d212a (diff)
downloadlinux-3.10-538452700d95480c16e7aa6b10ff77cd937d33f4.tar.gz
linux-3.10-538452700d95480c16e7aa6b10ff77cd937d33f4.tar.bz2
linux-3.10-538452700d95480c16e7aa6b10ff77cd937d33f4.zip
md: fix bitmap-on-external-file bug.
commit a2ed9615e3222645007fc19991aedf30eed3ecfd fixed a bug with 'internal' bitmaps, but in the process broke 'in a file' bitmaps. So they are broken in 2.6.28 This fixes it, and needs to go in 2.6.28-stable. Signed-off-by: NeilBrown <neilb@suse.de> Cc: stable@kernel.org
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/bitmap.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index ab7c8e4a61f..666b7ba47ec 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -964,9 +964,11 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
*/
page = bitmap->sb_page;
offset = sizeof(bitmap_super_t);
- read_sb_page(bitmap->mddev, bitmap->offset,
- page,
- index, count);
+ if (!file)
+ read_sb_page(bitmap->mddev,
+ bitmap->offset,
+ page,
+ index, count);
} else if (file) {
page = read_page(file, index, bitmap, count);
offset = 0;