Lines Matching refs:bh
44 struct buffer_head *bh; in ext3_append() local
48 if ((bh = ext3_dir_bread(handle, inode, *block, 1, err))) { in ext3_append()
51 *err = ext3_journal_get_write_access(handle, bh); in ext3_append()
53 brelse(bh); in ext3_append()
54 bh = NULL; in ext3_append()
57 return bh; in ext3_append()
123 struct buffer_head *bh; member
294 struct buffer_head *bh; in dx_show_entries() local
303 if (!(bh = ext3_bread (NULL,dir, block, 0,&err))) continue; in dx_show_entries()
305 dx_show_entries(hinfo, dir, ((struct dx_node *) bh->b_data)->entries, levels - 1): in dx_show_entries()
306 dx_show_leaf(hinfo, (struct ext3_dir_entry_2 *) bh->b_data, blocksize, 0); in dx_show_entries()
310 brelse (bh); in dx_show_entries()
335 struct buffer_head *bh; in dx_probe() local
339 frame->bh = NULL; in dx_probe()
340 if (!(bh = ext3_dir_bread(NULL, dir, 0, 0, err))) { in dx_probe()
344 root = (struct dx_root *) bh->b_data; in dx_probe()
351 brelse(bh); in dx_probe()
367 brelse(bh); in dx_probe()
376 brelse(bh); in dx_probe()
388 brelse(bh); in dx_probe()
400 brelse(bh); in dx_probe()
435 frame->bh = bh; in dx_probe()
439 if (!(bh = ext3_dir_bread(NULL, dir, dx_get_block(at), 0, err))) { in dx_probe()
443 at = entries = ((struct dx_node *) bh->b_data)->entries; in dx_probe()
447 brelse(bh); in dx_probe()
452 frame->bh = NULL; in dx_probe()
456 brelse(frame->bh); in dx_probe()
469 if (frames[0].bh == NULL) in dx_release()
472 if (((struct dx_root *) frames[0].bh->b_data)->info.indirect_levels) in dx_release()
473 brelse(frames[1].bh); in dx_release()
474 brelse(frames[0].bh); in dx_release()
500 struct buffer_head *bh; in ext3_htree_next_block() local
540 if (!(bh = ext3_dir_bread(NULL, dir, dx_get_block(p->at), in ext3_htree_next_block()
544 brelse (p->bh); in ext3_htree_next_block()
545 p->bh = bh; in ext3_htree_next_block()
546 p->at = p->entries = ((struct dx_node *) bh->b_data)->entries; in ext3_htree_next_block()
562 struct buffer_head *bh; in htree_dirblock_to_tree() local
568 if (!(bh = ext3_dir_bread(NULL, dir, block, 0, &err))) in htree_dirblock_to_tree()
571 de = (struct ext3_dir_entry_2 *) bh->b_data; in htree_dirblock_to_tree()
576 if (!ext3_check_dir_entry("htree_dirblock_to_tree", dir, de, bh, in htree_dirblock_to_tree()
578 +((char *)de - bh->b_data))) { in htree_dirblock_to_tree()
591 brelse(bh); in htree_dirblock_to_tree()
596 brelse(bh); in htree_dirblock_to_tree()
643 de = (struct ext3_dir_entry_2 *) frames[0].bh->b_data; in ext3_htree_fill_tree()
649 de = (struct ext3_dir_entry_2 *) frames[0].bh->b_data; in ext3_htree_fill_tree()
793 static inline int search_dirblock(struct buffer_head * bh, in search_dirblock() argument
805 de = (struct ext3_dir_entry_2 *) bh->b_data; in search_dirblock()
806 dlimit = bh->b_data + dir->i_sb->s_blocksize; in search_dirblock()
815 dir, de, bh, offset)) in search_dirblock()
848 struct buffer_head * bh, *ret = NULL; in ext3_find_entry() local
875 bh = ext3_dx_find_entry(dir, entry, res_dir, &err); in ext3_find_entry()
881 if (bh || (err != ERR_BAD_DX_DIR)) in ext3_find_entry()
882 return bh; in ext3_find_entry()
910 bh = ext3_getblk(NULL, dir, b++, 0, &err); in ext3_find_entry()
911 bh_use[ra_max] = bh; in ext3_find_entry()
912 if (bh && !bh_uptodate_or_lock(bh)) { in ext3_find_entry()
913 get_bh(bh); in ext3_find_entry()
914 bh->b_end_io = end_buffer_read_sync; in ext3_find_entry()
916 bh); in ext3_find_entry()
920 if ((bh = bh_use[ra_ptr++]) == NULL) in ext3_find_entry()
922 wait_on_buffer(bh); in ext3_find_entry()
923 if (!buffer_uptodate(bh)) { in ext3_find_entry()
927 brelse(bh); in ext3_find_entry()
930 i = search_dirblock(bh, dir, entry, in ext3_find_entry()
934 ret = bh; in ext3_find_entry()
937 brelse(bh); in ext3_find_entry()
971 struct buffer_head *bh; in ext3_dx_find_entry() local
979 if (!(bh = ext3_dir_bread (NULL, dir, block, 0, err))) in ext3_dx_find_entry()
982 retval = search_dirblock(bh, dir, entry, in ext3_dx_find_entry()
987 return bh; in ext3_dx_find_entry()
989 brelse(bh); in ext3_dx_find_entry()
1018 struct buffer_head * bh; in ext3_lookup() local
1023 bh = ext3_find_entry(dir, &dentry->d_name, &de); in ext3_lookup()
1025 if (bh) { in ext3_lookup()
1027 brelse (bh); in ext3_lookup()
1050 struct buffer_head *bh; in ext3_get_parent() local
1052 bh = ext3_find_entry(d_inode(child), &dotdot, &de); in ext3_get_parent()
1053 if (!bh) in ext3_get_parent()
1056 brelse(bh); in ext3_get_parent()
1139 struct buffer_head **bh,struct dx_frame *frame, in do_split() argument
1148 char *data1 = (*bh)->b_data, *data2; in do_split()
1155 brelse(*bh); in do_split()
1156 *bh = NULL; in do_split()
1160 BUFFER_TRACE(*bh, "get_write_access"); in do_split()
1161 err = ext3_journal_get_write_access(handle, *bh); in do_split()
1165 BUFFER_TRACE(frame->bh, "get_write_access"); in do_split()
1166 err = ext3_journal_get_write_access(handle, frame->bh); in do_split()
1206 swap(*bh, bh2); in do_split()
1213 err = ext3_journal_dirty_metadata (handle, frame->bh); in do_split()
1221 brelse(*bh); in do_split()
1223 *bh = NULL; in do_split()
1244 struct buffer_head * bh) in add_dirent_to_buf() argument
1256 de = (struct ext3_dir_entry_2 *)bh->b_data; in add_dirent_to_buf()
1257 top = bh->b_data + dir->i_sb->s_blocksize - reclen; in add_dirent_to_buf()
1260 bh, offset)) { in add_dirent_to_buf()
1261 brelse (bh); in add_dirent_to_buf()
1265 brelse (bh); in add_dirent_to_buf()
1278 BUFFER_TRACE(bh, "get_write_access"); in add_dirent_to_buf()
1279 err = ext3_journal_get_write_access(handle, bh); in add_dirent_to_buf()
1282 brelse(bh); in add_dirent_to_buf()
1318 BUFFER_TRACE(bh, "call ext3_journal_dirty_metadata"); in add_dirent_to_buf()
1319 err = ext3_journal_dirty_metadata(handle, bh); in add_dirent_to_buf()
1322 brelse(bh); in add_dirent_to_buf()
1331 struct inode *inode, struct buffer_head *bh) in make_indexed_dir() argument
1351 retval = ext3_journal_get_write_access(handle, bh); in make_indexed_dir()
1354 brelse(bh); in make_indexed_dir()
1357 root = (struct dx_root *) bh->b_data; in make_indexed_dir()
1367 brelse(bh); in make_indexed_dir()
1374 brelse(bh); in make_indexed_dir()
1406 frame->bh = bh; in make_indexed_dir()
1407 bh = bh2; in make_indexed_dir()
1412 ext3_journal_dirty_metadata(handle, frame->bh); in make_indexed_dir()
1413 ext3_journal_dirty_metadata(handle, bh); in make_indexed_dir()
1414 de = do_split(handle,dir, &bh, frame, &hinfo, &retval); in make_indexed_dir()
1422 return add_dirent_to_buf(handle, dentry, inode, de, bh); in make_indexed_dir()
1439 struct buffer_head * bh; in ext3_add_entry() local
1461 if (!(bh = ext3_dir_bread(handle, dir, block, 0, &retval))) in ext3_add_entry()
1464 retval = add_dirent_to_buf(handle, dentry, inode, NULL, bh); in ext3_add_entry()
1470 return make_indexed_dir(handle, dentry, inode, bh); in ext3_add_entry()
1471 brelse(bh); in ext3_add_entry()
1473 bh = ext3_append(handle, dir, &block, &retval); in ext3_add_entry()
1474 if (!bh) in ext3_add_entry()
1476 de = (struct ext3_dir_entry_2 *) bh->b_data; in ext3_add_entry()
1479 return add_dirent_to_buf(handle, dentry, inode, de, bh); in ext3_add_entry()
1491 struct buffer_head * bh; in ext3_dx_add_entry() local
1503 if (!(bh = ext3_dir_bread(handle, dir, dx_get_block(frame->at), 0, &err))) in ext3_dx_add_entry()
1506 BUFFER_TRACE(bh, "get_write_access"); in ext3_dx_add_entry()
1507 err = ext3_journal_get_write_access(handle, bh); in ext3_dx_add_entry()
1511 err = add_dirent_to_buf(handle, dentry, inode, NULL, bh); in ext3_dx_add_entry()
1513 bh = NULL; in ext3_dx_add_entry()
1543 BUFFER_TRACE(frame->bh, "get_write_access"); in ext3_dx_add_entry()
1544 err = ext3_journal_get_write_access(handle, frame->bh); in ext3_dx_add_entry()
1552 BUFFER_TRACE(frame->bh, "get_write_access"); /* index root */ in ext3_dx_add_entry()
1554 frames[0].bh); in ext3_dx_add_entry()
1568 swap(frame->bh, bh2); in ext3_dx_add_entry()
1587 ((struct dx_root *) frames[0].bh->b_data)->info.indirect_levels = 1; in ext3_dx_add_entry()
1593 frame->bh = bh2; in ext3_dx_add_entry()
1595 frame->bh); in ext3_dx_add_entry()
1599 err = ext3_journal_dirty_metadata(handle, frames[0].bh); in ext3_dx_add_entry()
1603 de = do_split(handle, dir, &bh, frame, &hinfo, &err); in ext3_dx_add_entry()
1606 err = add_dirent_to_buf(handle, dentry, inode, de, bh); in ext3_dx_add_entry()
1607 bh = NULL; in ext3_dx_add_entry()
1613 if (bh) in ext3_dx_add_entry()
1614 brelse(bh); in ext3_dx_add_entry()
1626 struct buffer_head * bh) in ext3_delete_entry() argument
1633 de = (struct ext3_dir_entry_2 *) bh->b_data; in ext3_delete_entry()
1634 while (i < bh->b_size) { in ext3_delete_entry()
1635 if (!ext3_check_dir_entry("ext3_delete_entry", dir, de, bh, i)) in ext3_delete_entry()
1640 BUFFER_TRACE(bh, "get_write_access"); in ext3_delete_entry()
1641 err = ext3_journal_get_write_access(handle, bh); in ext3_delete_entry()
1652 BUFFER_TRACE(bh, "call ext3_journal_dirty_metadata"); in ext3_delete_entry()
1653 err = ext3_journal_dirty_metadata(handle, bh); in ext3_delete_entry()
1892 struct buffer_head * bh; in empty_dir() local
1899 !(bh = ext3_dir_bread(NULL, inode, 0, 0, &err))) { in empty_dir()
1910 de = (struct ext3_dir_entry_2 *) bh->b_data; in empty_dir()
1919 brelse (bh); in empty_dir()
1926 if (!bh || in empty_dir()
1927 (void *) de >= (void *) (bh->b_data+sb->s_blocksize)) { in empty_dir()
1929 brelse (bh); in empty_dir()
1930 if (!(bh = ext3_dir_bread (NULL, inode, in empty_dir()
1940 de = (struct ext3_dir_entry_2 *) bh->b_data; in empty_dir()
1942 if (!ext3_check_dir_entry("empty_dir", inode, de, bh, offset)) { in empty_dir()
1943 de = (struct ext3_dir_entry_2 *)(bh->b_data + in empty_dir()
1949 brelse (bh); in empty_dir()
1955 brelse (bh); in empty_dir()
2099 brelse(iloc.bh); in ext3_orphan_del()
2107 struct buffer_head * bh; in ext3_rmdir() local
2121 bh = ext3_find_entry(dir, &dentry->d_name, &de); in ext3_rmdir()
2122 if (!bh) in ext3_rmdir()
2138 retval = ext3_delete_entry(handle, dir, de, bh); in ext3_rmdir()
2160 brelse (bh); in ext3_rmdir()
2168 struct buffer_head * bh; in ext3_unlink() local
2186 bh = ext3_find_entry(dir, &dentry->d_name, &de); in ext3_unlink()
2187 if (!bh) in ext3_unlink()
2202 retval = ext3_delete_entry(handle, dir, de, bh); in ext3_unlink()
2217 brelse (bh); in ext3_unlink()