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()
609 static int dirent_next(struct gfs2_inode *dip, struct buffer_head *bh, in dirent_next() argument
613 char *bh_end = bh->b_data + bh->b_size; in dirent_next()
644 static void dirent_del(struct gfs2_inode *dip, struct buffer_head *bh, in dirent_del() argument
654 gfs2_trans_add_meta(dip->i_gl, bh); in dirent_del()
673 if ((char *)cur + cur_rec_len > bh->b_data + bh->b_size) in dirent_del()
687 struct buffer_head *bh) in gfs2_init_dirent() argument
697 gfs2_trans_add_meta(ip->i_gl, bh); in gfs2_init_dirent()
705 struct buffer_head *bh, in gfs2_dirent_alloc() argument
709 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, in gfs2_dirent_alloc()
713 return gfs2_init_dirent(inode, dent, name, bh); in gfs2_dirent_alloc()
769 struct buffer_head *bh; in gfs2_dirent_search() local
785 error = get_first_leaf(ip, index, &bh); in gfs2_dirent_search()
789 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, in gfs2_dirent_search()
793 leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dirent_search()
795 brelse(bh); in gfs2_dirent_search()
799 error = get_leaf(ip, ln, &bh); in gfs2_dirent_search()
806 error = gfs2_meta_inode_buffer(ip, &bh); in gfs2_dirent_search()
809 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, scan, name, NULL); in gfs2_dirent_search()
812 brelse(bh); in gfs2_dirent_search()
813 bh = NULL; in gfs2_dirent_search()
815 *pbh = bh; in gfs2_dirent_search()
825 struct buffer_head *bh; in new_leaf() local
834 bh = gfs2_meta_new(ip->i_gl, bn); in new_leaf()
835 if (!bh) in new_leaf()
839 gfs2_trans_add_meta(ip->i_gl, bh); in new_leaf()
840 gfs2_metatype_set(bh, GFS2_METATYPE_LF, GFS2_FORMAT_LF); in new_leaf()
841 leaf = (struct gfs2_leaf *)bh->b_data; in new_leaf()
852 gfs2_qstr2dirent(&name, bh->b_size - sizeof(struct gfs2_leaf), dent); in new_leaf()
853 *pbh = bh; in new_leaf()
870 struct buffer_head *bh, *dibh; in dir_make_exhash() local
884 leaf = new_leaf(inode, &bh, 0); in dir_make_exhash()
887 bn = bh->b_blocknr; in dir_make_exhash()
894 gfs2_buffer_copy_tail(bh, sizeof(struct gfs2_leaf), dibh, in dir_make_exhash()
900 args.len = bh->b_size - sizeof(struct gfs2_dinode) + in dir_make_exhash()
902 args.name = bh->b_data; in dir_make_exhash()
903 dent = gfs2_dirent_scan(&dip->i_inode, bh->b_data, bh->b_size, in dir_make_exhash()
906 brelse(bh); in dir_make_exhash()
911 brelse(bh); in dir_make_exhash()
923 brelse(bh); in dir_make_exhash()
1299 struct buffer_head *bh; in gfs2_dir_read_leaf() local
1311 error = get_leaf(ip, lfn, &bh); in gfs2_dir_read_leaf()
1314 lf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_read_leaf()
1320 brelse(bh); in gfs2_dir_read_leaf()
1342 error = get_leaf(ip, lfn, &bh); in gfs2_dir_read_leaf()
1345 lf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_read_leaf()
1349 dent = gfs2_dirent_scan(inode, bh->b_data, bh->b_size, in gfs2_dir_read_leaf()
1358 (unsigned long long)bh->b_blocknr, in gfs2_dir_read_leaf()
1365 larr[leaf++] = bh; in gfs2_dir_read_leaf()
1367 brelse(bh); in gfs2_dir_read_leaf()
1394 struct buffer_head *bh; in gfs2_dir_readahead() local
1413 bh = gfs2_getbuf(gl, blocknr, 1); in gfs2_dir_readahead()
1414 if (trylock_buffer(bh)) { in gfs2_dir_readahead()
1415 if (buffer_uptodate(bh)) { in gfs2_dir_readahead()
1416 unlock_buffer(bh); in gfs2_dir_readahead()
1417 brelse(bh); in gfs2_dir_readahead()
1420 bh->b_end_io = end_buffer_read_sync; in gfs2_dir_readahead()
1421 submit_bh(READA | REQ_META, bh); in gfs2_dir_readahead()
1424 brelse(bh); in gfs2_dir_readahead()
1551 struct buffer_head *bh; in gfs2_dir_search() local
1556 dent = gfs2_dirent_search(dir, name, gfs2_dirent_find, &bh); in gfs2_dir_search()
1563 brelse(bh); in gfs2_dir_search()
1574 struct buffer_head *bh; in gfs2_dir_check() local
1578 dent = gfs2_dirent_search(dir, name, gfs2_dirent_find, &bh); in gfs2_dir_check()
1597 brelse(bh); in gfs2_dir_check()
1623 struct buffer_head *bh, *obh; in dir_new_leaf() local
1649 leaf = new_leaf(inode, &bh, be16_to_cpu(oleaf->lf_depth)); in dir_new_leaf()
1655 oleaf->lf_next = cpu_to_be64(bh->b_blocknr); in dir_new_leaf()
1656 brelse(bh); in dir_new_leaf()
1659 error = gfs2_meta_inode_buffer(ip, &bh); in dir_new_leaf()
1662 gfs2_trans_add_meta(ip->i_gl, bh); in dir_new_leaf()
1664 gfs2_dinode_out(ip, bh->b_data); in dir_new_leaf()
1665 brelse(bh); in dir_new_leaf()
1697 struct buffer_head *bh = da->bh; in gfs2_dir_add() local
1704 if (da->bh == NULL) { in gfs2_dir_add()
1706 gfs2_dirent_find_space, &bh); in gfs2_dir_add()
1711 dent = gfs2_init_dirent(inode, dent, name, bh); in gfs2_dir_add()
1717 leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_add()
1723 da->bh = NULL; in gfs2_dir_add()
1724 brelse(bh); in gfs2_dir_add()
1776 struct buffer_head *bh; in gfs2_dir_del() local
1781 dent = gfs2_dirent_search(&dip->i_inode, name, gfs2_dirent_prev, &bh); in gfs2_dir_del()
1796 dirent_del(dip, bh, prev, dent); in gfs2_dir_del()
1798 struct gfs2_leaf *leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_del()
1806 brelse(bh); in gfs2_dir_del()
1835 struct buffer_head *bh; in gfs2_dir_mvino() local
1839 dent = gfs2_dirent_search(&dip->i_inode, filename, gfs2_dirent_find, &bh); in gfs2_dir_mvino()
1847 gfs2_trans_add_meta(dip->i_gl, bh); in gfs2_dir_mvino()
1852 brelse(bh); in gfs2_dir_mvino()
1853 error = gfs2_meta_inode_buffer(dip, &bh); in gfs2_dir_mvino()
1856 gfs2_trans_add_meta(dip->i_gl, bh); in gfs2_dir_mvino()
1860 gfs2_dinode_out(dip, bh->b_data); in gfs2_dir_mvino()
1861 brelse(bh); in gfs2_dir_mvino()
1884 struct buffer_head *bh, *dibh; in leaf_dealloc() local
1909 bh = leaf_bh; in leaf_dealloc()
1913 error = get_leaf(dip, blk, &bh); in leaf_dealloc()
1917 tmp_leaf = (struct gfs2_leaf *)bh->b_data; in leaf_dealloc()
1920 brelse(bh); in leaf_dealloc()
1944 bh = leaf_bh; in leaf_dealloc()
1948 error = get_leaf(dip, blk, &bh); in leaf_dealloc()
1952 tmp_leaf = (struct gfs2_leaf *)bh->b_data; in leaf_dealloc()
1955 brelse(bh); in leaf_dealloc()
2004 struct buffer_head *bh; in gfs2_dir_exhash_dealloc() local
2021 error = get_leaf(dip, leaf_no, &bh); in gfs2_dir_exhash_dealloc()
2024 leaf = (struct gfs2_leaf *)bh->b_data; in gfs2_dir_exhash_dealloc()
2029 error = leaf_dealloc(dip, index, len, leaf_no, bh, in gfs2_dir_exhash_dealloc()
2031 brelse(bh); in gfs2_dir_exhash_dealloc()
2065 struct buffer_head *bh; in gfs2_diradd_alloc_required() local
2068 da->bh = NULL; in gfs2_diradd_alloc_required()
2071 dent = gfs2_dirent_search(inode, name, gfs2_dirent_find_space, &bh); in gfs2_diradd_alloc_required()
2083 da->bh = bh; in gfs2_diradd_alloc_required()
2086 brelse(bh); in gfs2_diradd_alloc_required()