|
@@ -986,6 +986,9 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
|
|
oldindex = index;
|
|
oldindex = index;
|
|
oldpage = page;
|
|
oldpage = page;
|
|
|
|
|
|
|
|
+ bitmap->filemap[bitmap->file_pages++] = page;
|
|
|
|
+ bitmap->last_page_size = count;
|
|
|
|
+
|
|
if (outofdate) {
|
|
if (outofdate) {
|
|
/*
|
|
/*
|
|
* if bitmap is out of date, dirty the
|
|
* if bitmap is out of date, dirty the
|
|
@@ -998,15 +1001,9 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
|
|
write_page(bitmap, page, 1);
|
|
write_page(bitmap, page, 1);
|
|
|
|
|
|
ret = -EIO;
|
|
ret = -EIO;
|
|
- if (bitmap->flags & BITMAP_WRITE_ERROR) {
|
|
|
|
- /* release, page not in filemap yet */
|
|
|
|
- put_page(page);
|
|
|
|
|
|
+ if (bitmap->flags & BITMAP_WRITE_ERROR)
|
|
goto err;
|
|
goto err;
|
|
- }
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
- bitmap->filemap[bitmap->file_pages++] = page;
|
|
|
|
- bitmap->last_page_size = count;
|
|
|
|
}
|
|
}
|
|
paddr = kmap_atomic(page, KM_USER0);
|
|
paddr = kmap_atomic(page, KM_USER0);
|
|
if (bitmap->flags & BITMAP_HOSTENDIAN)
|
|
if (bitmap->flags & BITMAP_HOSTENDIAN)
|