Skip to content

Commit

Permalink
nilfs2: simplify nilfs_mdt_freeze_buffer
Browse files Browse the repository at this point in the history
nilfs_page_get_nth_block() function used in nilfs_mdt_freeze_buffer()
always returns a valid buffer head, so its validity check can be
removed.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
  • Loading branch information
Ryusuke Konishi committed Jan 10, 2011
1 parent 888da23 commit a7a8447
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions fs/nilfs2/mdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 *
Expand Down

0 comments on commit a7a8447

Please sign in to comment.