diff options
author | NeilBrown <neilb@suse.de> | 2009-01-09 08:31:05 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-01-09 08:31:05 +1100 |
commit | 538452700d95480c16e7aa6b10ff77cd937d33f4 (patch) | |
tree | f0a25315e64ee38e59cefca1fb3bd064ffaedc46 /drivers | |
parent | 9e42d0cf5020aaf217433cad1a224745241d212a (diff) | |
download | linux-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.c | 8 |
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; |