Lines Matching refs:bh
50 struct buffer_head *bh;
52 bh = nilfs_grab_buffer(inode, btnc, blocknr, BIT(BH_NILFS_Node));
53 if (unlikely(!bh))
56 if (unlikely(buffer_mapped(bh) || buffer_uptodate(bh) ||
57 buffer_dirty(bh))) {
58 brelse(bh);
61 memset(bh->b_data, 0, i_blocksize(inode));
62 bh->b_bdev = inode->i_sb->s_bdev;
63 bh->b_blocknr = blocknr;
64 set_buffer_mapped(bh);
65 set_buffer_uptodate(bh);
67 unlock_page(bh->b_page);
68 put_page(bh->b_page);
69 return bh;
76 struct buffer_head *bh;
81 bh = nilfs_grab_buffer(inode, btnc, blocknr, BIT(BH_NILFS_Node));
82 if (unlikely(!bh))
86 page = bh->b_page;
88 if (buffer_uptodate(bh) || buffer_dirty(bh))
100 brelse(bh);
107 if (pblocknr != *submit_ptr + 1 || !trylock_buffer(bh)) {
109 brelse(bh);
113 lock_buffer(bh);
115 if (buffer_uptodate(bh)) {
116 unlock_buffer(bh);
120 set_buffer_mapped(bh);
121 bh->b_bdev = inode->i_sb->s_bdev;
122 bh->b_blocknr = pblocknr; /* set block address for read */
123 bh->b_end_io = end_buffer_read_sync;
124 get_bh(bh);
125 submit_bh(mode, mode_flags, bh);
126 bh->b_blocknr = blocknr; /* set back to the given block address */
130 *pbh = bh;
140 * @bh: buffer to be deleted
145 void nilfs_btnode_delete(struct buffer_head *bh)
148 struct page *page = bh->b_page;
156 nilfs_forget_buffer(bh);
184 obh = ctxt->bh;
239 struct buffer_head *obh = ctxt->bh, *nbh = ctxt->newbh;
267 ctxt->bh = nbh;
268 nilfs_btnode_delete(obh); /* will decrement bh->b_count */
287 unlock_page(ctxt->bh->b_page);