Lines Matching refs:bh
95 struct buffer_head *bh; in gfs2_dir_get_new_buffer() local
97 bh = gfs2_meta_new(ip->i_gl, block); in gfs2_dir_get_new_buffer()
98 gfs2_trans_add_meta(ip->i_gl, bh); in gfs2_dir_get_new_buffer()
99 gfs2_metatype_set(bh, GFS2_METATYPE_JD, GFS2_FORMAT_JD); in gfs2_dir_get_new_buffer()
100 gfs2_buffer_clear_tail(bh, sizeof(struct gfs2_meta_header)); in gfs2_dir_get_new_buffer()
101 *bhp = bh; in gfs2_dir_get_new_buffer()
108 struct buffer_head *bh; in gfs2_dir_get_existing_buffer() local
111 error = gfs2_meta_read(ip->i_gl, block, DIO_WAIT, &bh); in gfs2_dir_get_existing_buffer()
114 if (gfs2_metatype_check(GFS2_SB(&ip->i_inode), bh, GFS2_METATYPE_JD)) { in gfs2_dir_get_existing_buffer()
115 brelse(bh); in gfs2_dir_get_existing_buffer()
118 *bhp = bh; in gfs2_dir_get_existing_buffer()
189 struct buffer_head *bh; in gfs2_dir_write_data() local
207 error = gfs2_dir_get_new_buffer(ip, dblock, &bh); in gfs2_dir_write_data()
209 error = gfs2_dir_get_existing_buffer(ip, dblock, &bh); in gfs2_dir_write_data()
214 gfs2_trans_add_meta(ip->i_gl, bh); in gfs2_dir_write_data()
215 memcpy(bh->b_data + o, buf, amount); in gfs2_dir_write_data()
216 brelse(bh); in gfs2_dir_write_data()
292 struct buffer_head *bh; in gfs2_dir_read_data() local
306 bh = gfs2_meta_ra(ip->i_gl, dblock, extlen); in gfs2_dir_read_data()
308 error = gfs2_meta_read(ip->i_gl, dblock, DIO_WAIT, &bh); in gfs2_dir_read_data()
312 error = gfs2_metatype_check(sdp, bh, GFS2_METATYPE_JD); in gfs2_dir_read_data()
314 brelse(bh); in gfs2_dir_read_data()
319 memcpy(buf, bh->b_data + o, amount); in gfs2_dir_read_data()
320 brelse(bh); in gfs2_dir_read_data()
614 static int dirent_next(struct gfs2_inode *dip, struct buffer_head *bh, in dirent_next() argument
618 char *bh_end = bh->b_data + bh->b_size; in dirent_next()
649 static void dirent_del(struct gfs2_inode *dip, struct buffer_head *bh, in dirent_del() argument
659 gfs2_trans_add_meta(dip->i_gl, bh); in dirent_del()
678 if ((char *)cur + cur_rec_len > bh->b_data + bh->b_size) in dirent_del()
692 struct buffer_head *bh) in gfs2_init_dirent() argument
702 gfs2_trans_add_meta(ip->i_gl, bh); in gfs2_init_dirent()
710 struct buffer_head *bh, in gfs2_dirent_alloc() argument
714 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, in gfs2_dirent_alloc()
718 return gfs2_init_dirent(inode, dent, name, bh); in gfs2_dirent_alloc()
774 struct buffer_head *bh; in gfs2_dirent_search() local
790 error = get_first_leaf(ip, index, &bh); in gfs2_dirent_search()
794 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, in gfs2_dirent_search()
798 leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dirent_search()
800 brelse(bh); in gfs2_dirent_search()
804 error = get_leaf(ip, ln, &bh); in gfs2_dirent_search()
811 error = gfs2_meta_inode_buffer(ip, &bh); in gfs2_dirent_search()
814 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, scan, name, NULL); in gfs2_dirent_search()
817 brelse(bh); in gfs2_dirent_search()
818 bh = NULL; in gfs2_dirent_search()
820 *pbh = bh; in gfs2_dirent_search()
830 struct buffer_head *bh; in new_leaf() local
839 bh = gfs2_meta_new(ip->i_gl, bn); in new_leaf()
840 if (!bh) in new_leaf()
844 gfs2_trans_add_meta(ip->i_gl, bh); in new_leaf()
845 gfs2_metatype_set(bh, GFS2_METATYPE_LF, GFS2_FORMAT_LF); in new_leaf()
846 leaf = (struct gfs2_leaf *)bh->b_data; in new_leaf()
857 gfs2_qstr2dirent(&name, bh->b_size - sizeof(struct gfs2_leaf), dent); in new_leaf()
858 *pbh = bh; in new_leaf()
875 struct buffer_head *bh, *dibh; in dir_make_exhash() local
889 leaf = new_leaf(inode, &bh, 0); in dir_make_exhash()
892 bn = bh->b_blocknr; in dir_make_exhash()
899 gfs2_buffer_copy_tail(bh, sizeof(struct gfs2_leaf), dibh, in dir_make_exhash()
905 args.len = bh->b_size - sizeof(struct gfs2_dinode) + in dir_make_exhash()
907 args.name = bh->b_data; in dir_make_exhash()
908 dent = gfs2_dirent_scan(&dip->i_inode, bh->b_data, bh->b_size, in dir_make_exhash()
911 brelse(bh); in dir_make_exhash()
916 brelse(bh); in dir_make_exhash()
928 brelse(bh); in dir_make_exhash()
1304 struct buffer_head *bh; in gfs2_dir_read_leaf() local
1316 error = get_leaf(ip, lfn, &bh); in gfs2_dir_read_leaf()
1319 lf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_read_leaf()
1325 brelse(bh); in gfs2_dir_read_leaf()
1347 error = get_leaf(ip, lfn, &bh); in gfs2_dir_read_leaf()
1350 lf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_read_leaf()
1354 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, in gfs2_dir_read_leaf()
1363 (unsigned long long)bh->b_blocknr, in gfs2_dir_read_leaf()
1370 larr[leaf++] = bh; in gfs2_dir_read_leaf()
1372 brelse(bh); in gfs2_dir_read_leaf()
1399 struct buffer_head *bh; in gfs2_dir_readahead() local
1418 bh = gfs2_getbuf(gl, blocknr, 1); in gfs2_dir_readahead()
1419 if (trylock_buffer(bh)) { in gfs2_dir_readahead()
1420 if (buffer_uptodate(bh)) { in gfs2_dir_readahead()
1421 unlock_buffer(bh); in gfs2_dir_readahead()
1422 brelse(bh); in gfs2_dir_readahead()
1425 bh->b_end_io = end_buffer_read_sync; in gfs2_dir_readahead()
1426 submit_bh(READA | REQ_META, bh); in gfs2_dir_readahead()
1429 brelse(bh); in gfs2_dir_readahead()
1556 struct buffer_head *bh; in gfs2_dir_search() local
1561 dent = gfs2_dirent_search(dir, name, gfs2_dirent_find, &bh); in gfs2_dir_search()
1568 brelse(bh); in gfs2_dir_search()
1579 struct buffer_head *bh; in gfs2_dir_check() local
1583 dent = gfs2_dirent_search(dir, name, gfs2_dirent_find, &bh); in gfs2_dir_check()
1602 brelse(bh); in gfs2_dir_check()
1628 struct buffer_head *bh, *obh; in dir_new_leaf() local
1654 leaf = new_leaf(inode, &bh, be16_to_cpu(oleaf->lf_depth)); in dir_new_leaf()
1660 oleaf->lf_next = cpu_to_be64(bh->b_blocknr); in dir_new_leaf()
1661 brelse(bh); in dir_new_leaf()
1664 error = gfs2_meta_inode_buffer(ip, &bh); in dir_new_leaf()
1667 gfs2_trans_add_meta(ip->i_gl, bh); in dir_new_leaf()
1669 gfs2_dinode_out(ip, bh->b_data); in dir_new_leaf()
1670 brelse(bh); in dir_new_leaf()
1702 struct buffer_head *bh = da->bh; in gfs2_dir_add() local
1709 if (da->bh == NULL) { in gfs2_dir_add()
1711 gfs2_dirent_find_space, &bh); in gfs2_dir_add()
1716 dent = gfs2_init_dirent(inode, dent, name, bh); in gfs2_dir_add()
1722 leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_add()
1728 da->bh = NULL; in gfs2_dir_add()
1729 brelse(bh); in gfs2_dir_add()
1781 struct buffer_head *bh; in gfs2_dir_del() local
1786 dent = gfs2_dirent_search(&dip->i_inode, name, gfs2_dirent_prev, &bh); in gfs2_dir_del()
1801 dirent_del(dip, bh, prev, dent); in gfs2_dir_del()
1803 struct gfs2_leaf *leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_del()
1811 brelse(bh); in gfs2_dir_del()
1840 struct buffer_head *bh; in gfs2_dir_mvino() local
1844 dent = gfs2_dirent_search(&dip->i_inode, filename, gfs2_dirent_find, &bh); in gfs2_dir_mvino()
1852 gfs2_trans_add_meta(dip->i_gl, bh); in gfs2_dir_mvino()
1857 brelse(bh); in gfs2_dir_mvino()
1858 error = gfs2_meta_inode_buffer(dip, &bh); in gfs2_dir_mvino()
1861 gfs2_trans_add_meta(dip->i_gl, bh); in gfs2_dir_mvino()
1865 gfs2_dinode_out(dip, bh->b_data); in gfs2_dir_mvino()
1866 brelse(bh); in gfs2_dir_mvino()
1889 struct buffer_head *bh, *dibh; in leaf_dealloc() local
1914 bh = leaf_bh; in leaf_dealloc()
1918 error = get_leaf(dip, blk, &bh); in leaf_dealloc()
1922 tmp_leaf = (struct gfs2_leaf *)bh->b_data; in leaf_dealloc()
1925 brelse(bh); in leaf_dealloc()
1949 bh = leaf_bh; in leaf_dealloc()
1953 error = get_leaf(dip, blk, &bh); in leaf_dealloc()
1957 tmp_leaf = (struct gfs2_leaf *)bh->b_data; in leaf_dealloc()
1960 brelse(bh); in leaf_dealloc()
2009 struct buffer_head *bh; in gfs2_dir_exhash_dealloc() local
2026 error = get_leaf(dip, leaf_no, &bh); in gfs2_dir_exhash_dealloc()
2029 leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_exhash_dealloc()
2034 error = leaf_dealloc(dip, index, len, leaf_no, bh, in gfs2_dir_exhash_dealloc()
2036 brelse(bh); in gfs2_dir_exhash_dealloc()
2070 struct buffer_head *bh; in gfs2_diradd_alloc_required() local
2073 da->bh = NULL; in gfs2_diradd_alloc_required()
2076 dent = gfs2_dirent_search(inode, name, gfs2_dirent_find_space, &bh); in gfs2_diradd_alloc_required()
2088 da->bh = bh; in gfs2_diradd_alloc_required()
2091 brelse(bh); in gfs2_diradd_alloc_required()