|
@@ -2094,9 +2094,12 @@ int block_read_full_page(struct page *page, get_block_t *get_block)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (!buffer_mapped(bh)) {
|
|
if (!buffer_mapped(bh)) {
|
|
|
|
+ int err = 0;
|
|
|
|
+
|
|
fully_mapped = 0;
|
|
fully_mapped = 0;
|
|
if (iblock < lblock) {
|
|
if (iblock < lblock) {
|
|
- if (get_block(inode, iblock, bh, 0))
|
|
|
|
|
|
+ err = get_block(inode, iblock, bh, 0);
|
|
|
|
+ if (err)
|
|
SetPageError(page);
|
|
SetPageError(page);
|
|
}
|
|
}
|
|
if (!buffer_mapped(bh)) {
|
|
if (!buffer_mapped(bh)) {
|
|
@@ -2104,7 +2107,8 @@ int block_read_full_page(struct page *page, get_block_t *get_block)
|
|
memset(kaddr + i * blocksize, 0, blocksize);
|
|
memset(kaddr + i * blocksize, 0, blocksize);
|
|
flush_dcache_page(page);
|
|
flush_dcache_page(page);
|
|
kunmap_atomic(kaddr, KM_USER0);
|
|
kunmap_atomic(kaddr, KM_USER0);
|
|
- set_buffer_uptodate(bh);
|
|
|
|
|
|
+ if (!err)
|
|
|
|
+ set_buffer_uptodate(bh);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
/*
|
|
/*
|