diff options
author | NeilBrown <neilb@suse.de> | 2009-01-09 08:31:05 +1100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-01-18 10:35:27 -0800 |
commit | 5fb828be9c8a06ac01ac155567bc8a8aa461e1e9 (patch) | |
tree | 03ee629008020c5467d141a7db1fe8e7c3e909c1 /drivers | |
parent | f7853c4f831743203c292b28968239cca37f51f8 (diff) |
md: fix bitmap-on-external-file bug.
commit 538452700d95480c16e7aa6b10ff77cd937d33f4 upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
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 ab7c8e4a61f9..666b7ba47ec5 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; |