|
@@ -493,31 +493,29 @@ int nilfs_mdt_freeze_buffer(struct inode *inode, struct buffer_head *bh)
|
|
|
struct buffer_head *bh_frozen;
|
|
|
struct page *page;
|
|
|
int blkbits = inode->i_blkbits;
|
|
|
- int ret = -ENOMEM;
|
|
|
|
|
|
page = grab_cache_page(&shadow->frozen_data, bh->b_page->index);
|
|
|
if (!page)
|
|
|
- return ret;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
if (!page_has_buffers(page))
|
|
|
create_empty_buffers(page, 1 << blkbits, 0);
|
|
|
|
|
|
bh_frozen = nilfs_page_get_nth_block(page, bh_offset(bh) >> blkbits);
|
|
|
- if (bh_frozen) {
|
|
|
- if (!buffer_uptodate(bh_frozen))
|
|
|
- nilfs_copy_buffer(bh_frozen, bh);
|
|
|
- if (list_empty(&bh_frozen->b_assoc_buffers)) {
|
|
|
- list_add_tail(&bh_frozen->b_assoc_buffers,
|
|
|
- &shadow->frozen_buffers);
|
|
|
- set_buffer_nilfs_redirected(bh);
|
|
|
- } else {
|
|
|
- brelse(bh_frozen); /* already frozen */
|
|
|
- }
|
|
|
- ret = 0;
|
|
|
+
|
|
|
+ if (!buffer_uptodate(bh_frozen))
|
|
|
+ nilfs_copy_buffer(bh_frozen, bh);
|
|
|
+ if (list_empty(&bh_frozen->b_assoc_buffers)) {
|
|
|
+ list_add_tail(&bh_frozen->b_assoc_buffers,
|
|
|
+ &shadow->frozen_buffers);
|
|
|
+ set_buffer_nilfs_redirected(bh);
|
|
|
+ } else {
|
|
|
+ brelse(bh_frozen); /* already frozen */
|
|
|
}
|
|
|
+
|
|
|
unlock_page(page);
|
|
|
page_cache_release(page);
|
|
|
- return ret;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
struct buffer_head *
|