• Home
  • Raw
  • Download

Lines Matching refs:bh

57 	struct buffer_head *bh;  in ext4_append()  local
67 bh = ext4_bread(handle, inode, *block, EXT4_GET_BLOCKS_CREATE); in ext4_append()
68 if (IS_ERR(bh)) in ext4_append()
69 return bh; in ext4_append()
72 BUFFER_TRACE(bh, "get_write_access"); in ext4_append()
73 err = ext4_journal_get_write_access(handle, bh); in ext4_append()
75 brelse(bh); in ext4_append()
79 return bh; in ext4_append()
108 struct buffer_head *bh; in __ext4_read_dirblock() local
112 bh = ext4_bread(NULL, inode, block, 0); in __ext4_read_dirblock()
113 if (IS_ERR(bh)) { in __ext4_read_dirblock()
118 current->comm, PTR_ERR(bh)); in __ext4_read_dirblock()
120 return bh; in __ext4_read_dirblock()
122 if (!bh && (type == INDEX || type == DIRENT_HTREE)) { in __ext4_read_dirblock()
128 if (!bh) in __ext4_read_dirblock()
130 dirent = (struct ext4_dir_entry *) bh->b_data; in __ext4_read_dirblock()
143 brelse(bh); in __ext4_read_dirblock()
147 buffer_verified(bh)) in __ext4_read_dirblock()
148 return bh; in __ext4_read_dirblock()
157 set_buffer_verified(bh); in __ext4_read_dirblock()
161 brelse(bh); in __ext4_read_dirblock()
166 if (ext4_dirblock_csum_verify(inode, bh)) in __ext4_read_dirblock()
167 set_buffer_verified(bh); in __ext4_read_dirblock()
171 brelse(bh); in __ext4_read_dirblock()
175 return bh; in __ext4_read_dirblock()
241 struct buffer_head *bh; member
296 void ext4_initialize_dirent_tail(struct buffer_head *bh, in ext4_initialize_dirent_tail() argument
299 struct ext4_dir_entry_tail *t = EXT4_DIRENT_TAIL(bh->b_data, blocksize); in ext4_initialize_dirent_tail()
309 struct buffer_head *bh) in get_dirent_tail() argument
316 d = (struct ext4_dir_entry *)bh->b_data; in get_dirent_tail()
317 top = (struct ext4_dir_entry *)(bh->b_data + in get_dirent_tail()
329 t = EXT4_DIRENT_TAIL(bh->b_data, EXT4_BLOCK_SIZE(inode->i_sb)); in get_dirent_tail()
361 int ext4_dirblock_csum_verify(struct inode *inode, struct buffer_head *bh) in ext4_dirblock_csum_verify() argument
368 t = get_dirent_tail(inode, bh); in ext4_dirblock_csum_verify()
374 if (t->det_checksum != ext4_dirblock_csum(inode, bh->b_data, in ext4_dirblock_csum_verify()
375 (char *)t - bh->b_data)) in ext4_dirblock_csum_verify()
382 struct buffer_head *bh) in ext4_dirblock_csum_set() argument
389 t = get_dirent_tail(inode, bh); in ext4_dirblock_csum_set()
395 t->det_checksum = ext4_dirblock_csum(inode, bh->b_data, in ext4_dirblock_csum_set()
396 (char *)t - bh->b_data); in ext4_dirblock_csum_set()
401 struct buffer_head *bh) in ext4_handle_dirty_dirblock() argument
403 ext4_dirblock_csum_set(inode, bh); in ext4_handle_dirty_dirblock()
404 return ext4_handle_dirty_metadata(handle, inode, bh); in ext4_handle_dirty_dirblock()
511 struct buffer_head *bh) in ext4_handle_dirty_dx_node() argument
513 ext4_dx_csum_set(inode, (struct ext4_dir_entry *)bh->b_data); in ext4_handle_dirty_dx_node()
514 return ext4_handle_dirty_metadata(handle, inode, bh); in ext4_handle_dirty_dx_node()
711 struct buffer_head *bh; in dx_show_entries() local
720 bh = ext4_bread(NULL,dir, block, 0); in dx_show_entries()
721 if (!bh || IS_ERR(bh)) in dx_show_entries()
724 dx_show_entries(hinfo, dir, ((struct dx_node *) bh->b_data)->entries, levels - 1): in dx_show_entries()
726 bh->b_data, blocksize, 0); in dx_show_entries()
730 brelse(bh); in dx_show_entries()
761 frame->bh = ext4_read_dirblock(dir, 0, INDEX); in dx_probe()
762 if (IS_ERR(frame->bh)) in dx_probe()
763 return (struct dx_frame *) frame->bh; in dx_probe()
765 root = (struct dx_root *) frame->bh->b_data; in dx_probe()
858 frame->bh = ext4_read_dirblock(dir, dx_get_block(at), INDEX); in dx_probe()
859 if (IS_ERR(frame->bh)) { in dx_probe()
860 ret_err = (struct dx_frame *) frame->bh; in dx_probe()
861 frame->bh = NULL; in dx_probe()
864 entries = ((struct dx_node *) frame->bh->b_data)->entries; in dx_probe()
875 brelse(frame->bh); in dx_probe()
891 if (frames[0].bh == NULL) in dx_release()
894 info = &((struct dx_root *)frames[0].bh->b_data)->info; in dx_release()
898 if (frames[i].bh == NULL) in dx_release()
900 brelse(frames[i].bh); in dx_release()
901 frames[i].bh = NULL; in dx_release()
928 struct buffer_head *bh; in ext4_htree_next_block() local
968 bh = ext4_read_dirblock(dir, dx_get_block(p->at), INDEX); in ext4_htree_next_block()
969 if (IS_ERR(bh)) in ext4_htree_next_block()
970 return PTR_ERR(bh); in ext4_htree_next_block()
972 brelse(p->bh); in ext4_htree_next_block()
973 p->bh = bh; in ext4_htree_next_block()
974 p->at = p->entries = ((struct dx_node *) bh->b_data)->entries; in ext4_htree_next_block()
990 struct buffer_head *bh; in htree_dirblock_to_tree() local
997 bh = ext4_read_dirblock(dir, block, DIRENT_HTREE); in htree_dirblock_to_tree()
998 if (IS_ERR(bh)) in htree_dirblock_to_tree()
999 return PTR_ERR(bh); in htree_dirblock_to_tree()
1001 de = (struct ext4_dir_entry_2 *) bh->b_data; in htree_dirblock_to_tree()
1010 brelse(bh); in htree_dirblock_to_tree()
1016 brelse(bh); in htree_dirblock_to_tree()
1022 if (ext4_check_dir_entry(dir, NULL, de, bh, in htree_dirblock_to_tree()
1023 bh->b_data, bh->b_size, in htree_dirblock_to_tree()
1025 + ((char *)de - bh->b_data))) { in htree_dirblock_to_tree()
1067 brelse(bh); in htree_dirblock_to_tree()
1129 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data; in ext4_htree_fill_tree()
1139 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data; in ext4_htree_fill_tree()
1190 static inline int search_dirblock(struct buffer_head *bh, in search_dirblock() argument
1196 return ext4_search_dir(bh, bh->b_data, dir->i_sb->s_blocksize, dir, in search_dirblock()
1378 int ext4_search_dir(struct buffer_head *bh, char *search_buf, int buf_size, in ext4_search_dir() argument
1395 if (ext4_check_dir_entry(dir, NULL, de, bh, bh->b_data, in ext4_search_dir()
1396 bh->b_size, offset)) in ext4_search_dir()
1446 struct buffer_head *bh, *ret = NULL; in __ext4_find_entry() local
1526 if ((bh = bh_use[ra_ptr++]) == NULL) in __ext4_find_entry()
1528 wait_on_buffer(bh); in __ext4_find_entry()
1529 if (!buffer_uptodate(bh)) { in __ext4_find_entry()
1532 brelse(bh); in __ext4_find_entry()
1536 if (!buffer_verified(bh) && in __ext4_find_entry()
1538 (struct ext4_dir_entry *)bh->b_data) && in __ext4_find_entry()
1539 !ext4_dirblock_csum_verify(dir, bh)) { in __ext4_find_entry()
1542 brelse(bh); in __ext4_find_entry()
1546 set_buffer_verified(bh); in __ext4_find_entry()
1547 i = search_dirblock(bh, dir, fname, in __ext4_find_entry()
1551 ret = bh; in __ext4_find_entry()
1554 brelse(bh); in __ext4_find_entry()
1588 struct buffer_head *bh; in ext4_find_entry() local
1596 bh = __ext4_find_entry(dir, &fname, res_dir, inlined); in ext4_find_entry()
1599 return bh; in ext4_find_entry()
1608 struct buffer_head *bh; in ext4_lookup_entry() local
1616 bh = __ext4_find_entry(dir, &fname, res_dir, NULL); in ext4_lookup_entry()
1619 return bh; in ext4_lookup_entry()
1628 struct buffer_head *bh; in ext4_dx_find_entry() local
1640 bh = ext4_read_dirblock(dir, block, DIRENT_HTREE); in ext4_dx_find_entry()
1641 if (IS_ERR(bh)) in ext4_dx_find_entry()
1644 retval = search_dirblock(bh, dir, fname, in ext4_dx_find_entry()
1649 brelse(bh); in ext4_dx_find_entry()
1651 bh = ERR_PTR(ERR_BAD_DX_DIR); in ext4_dx_find_entry()
1662 bh = ERR_PTR(retval); in ext4_dx_find_entry()
1667 bh = NULL; in ext4_dx_find_entry()
1672 return bh; in ext4_dx_find_entry()
1679 struct buffer_head *bh; in ext4_lookup() local
1684 bh = ext4_lookup_entry(dir, dentry, &de); in ext4_lookup()
1685 if (IS_ERR(bh)) in ext4_lookup()
1686 return ERR_CAST(bh); in ext4_lookup()
1688 if (bh) { in ext4_lookup()
1690 brelse(bh); in ext4_lookup()
1737 struct buffer_head *bh; in ext4_get_parent() local
1739 bh = ext4_find_entry(d_inode(child), &dotdot, &de, NULL); in ext4_get_parent()
1740 if (IS_ERR(bh)) in ext4_get_parent()
1741 return ERR_CAST(bh); in ext4_get_parent()
1742 if (!bh) in ext4_get_parent()
1745 brelse(bh); in ext4_get_parent()
1811 struct buffer_head **bh,struct dx_frame *frame, in do_split() argument
1820 char *data1 = (*bh)->b_data, *data2; in do_split()
1831 brelse(*bh); in do_split()
1832 *bh = NULL; in do_split()
1836 BUFFER_TRACE(*bh, "get_write_access"); in do_split()
1837 err = ext4_journal_get_write_access(handle, *bh); in do_split()
1841 BUFFER_TRACE(frame->bh, "get_write_access"); in do_split()
1842 err = ext4_journal_get_write_access(handle, frame->bh); in do_split()
1883 ext4_initialize_dirent_tail(*bh, blocksize); in do_split()
1894 swap(*bh, bh2); in do_split()
1901 err = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in do_split()
1909 brelse(*bh); in do_split()
1911 *bh = NULL; in do_split()
1917 struct buffer_head *bh, in ext4_find_dest_de() argument
1931 if (ext4_check_dir_entry(dir, NULL, de, bh, in ext4_find_dest_de()
1985 struct buffer_head *bh) in add_dirent_to_buf() argument
1995 err = ext4_find_dest_de(dir, inode, bh, bh->b_data, in add_dirent_to_buf()
2000 BUFFER_TRACE(bh, "get_write_access"); in add_dirent_to_buf()
2001 err = ext4_journal_get_write_access(handle, bh); in add_dirent_to_buf()
2025 BUFFER_TRACE(bh, "call ext4_handle_dirty_metadata"); in add_dirent_to_buf()
2026 err = ext4_handle_dirty_dirblock(handle, dir, bh); in add_dirent_to_buf()
2038 struct inode *inode, struct buffer_head *bh) in make_indexed_dir() argument
2058 BUFFER_TRACE(bh, "get_write_access"); in make_indexed_dir()
2059 retval = ext4_journal_get_write_access(handle, bh); in make_indexed_dir()
2062 brelse(bh); in make_indexed_dir()
2065 root = (struct dx_root *) bh->b_data; in make_indexed_dir()
2073 brelse(bh); in make_indexed_dir()
2081 brelse(bh); in make_indexed_dir()
2121 frame->bh = bh; in make_indexed_dir()
2123 retval = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in make_indexed_dir()
2164 struct buffer_head *bh = NULL; in ext4_add_entry() local
2214 bh = ext4_read_dirblock(dir, block, DIRENT); in ext4_add_entry()
2215 if (bh == NULL) { in ext4_add_entry()
2216 bh = ext4_bread(handle, dir, block, in ext4_add_entry()
2220 if (IS_ERR(bh)) { in ext4_add_entry()
2221 retval = PTR_ERR(bh); in ext4_add_entry()
2222 bh = NULL; in ext4_add_entry()
2226 NULL, bh); in ext4_add_entry()
2233 inode, bh); in ext4_add_entry()
2234 bh = NULL; /* make_indexed_dir releases bh */ in ext4_add_entry()
2237 brelse(bh); in ext4_add_entry()
2239 bh = ext4_append(handle, dir, &block); in ext4_add_entry()
2241 if (IS_ERR(bh)) { in ext4_add_entry()
2242 retval = PTR_ERR(bh); in ext4_add_entry()
2243 bh = NULL; in ext4_add_entry()
2246 de = (struct ext4_dir_entry_2 *) bh->b_data; in ext4_add_entry()
2251 ext4_initialize_dirent_tail(bh, blocksize); in ext4_add_entry()
2253 retval = add_dirent_to_buf(handle, &fname, dir, inode, de, bh); in ext4_add_entry()
2256 brelse(bh); in ext4_add_entry()
2270 struct buffer_head *bh; in ext4_dx_add_entry() local
2283 bh = ext4_read_dirblock(dir, dx_get_block(frame->at), DIRENT_HTREE); in ext4_dx_add_entry()
2284 if (IS_ERR(bh)) { in ext4_dx_add_entry()
2285 err = PTR_ERR(bh); in ext4_dx_add_entry()
2286 bh = NULL; in ext4_dx_add_entry()
2290 BUFFER_TRACE(bh, "get_write_access"); in ext4_dx_add_entry()
2291 err = ext4_journal_get_write_access(handle, bh); in ext4_dx_add_entry()
2295 err = add_dirent_to_buf(handle, fname, dir, inode, NULL, bh); in ext4_dx_add_entry()
2347 BUFFER_TRACE(frame->bh, "get_write_access"); in ext4_dx_add_entry()
2348 err = ext4_journal_get_write_access(handle, frame->bh); in ext4_dx_add_entry()
2357 BUFFER_TRACE(frame->bh, "get_write_access"); /* index root */ in ext4_dx_add_entry()
2359 (frame - 1)->bh); in ext4_dx_add_entry()
2373 swap(frame->bh, bh2); in ext4_dx_add_entry()
2384 (frame - 1)->bh); in ext4_dx_add_entry()
2389 frame->bh); in ext4_dx_add_entry()
2401 dxroot = (struct dx_root *)frames[0].bh->b_data; in ext4_dx_add_entry()
2406 err = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in ext4_dx_add_entry()
2415 de = do_split(handle, dir, &bh, frame, &fname->hinfo); in ext4_dx_add_entry()
2420 err = add_dirent_to_buf(handle, fname, dir, inode, de, bh); in ext4_dx_add_entry()
2426 brelse(bh); in ext4_dx_add_entry()
2443 struct buffer_head *bh, in ext4_generic_delete_entry() argument
2456 if (ext4_check_dir_entry(dir, NULL, de, bh, in ext4_generic_delete_entry()
2457 bh->b_data, bh->b_size, i)) in ext4_generic_delete_entry()
2482 struct buffer_head *bh) in ext4_delete_entry() argument
2488 err = ext4_delete_inline_entry(handle, dir, de_del, bh, in ext4_delete_entry()
2497 BUFFER_TRACE(bh, "get_write_access"); in ext4_delete_entry()
2498 err = ext4_journal_get_write_access(handle, bh); in ext4_delete_entry()
2503 bh, bh->b_data, in ext4_delete_entry()
2508 BUFFER_TRACE(bh, "call ext4_handle_dirty_metadata"); in ext4_delete_entry()
2509 err = ext4_handle_dirty_dirblock(handle, dir, bh); in ext4_delete_entry()
2810 struct buffer_head *bh; in ext4_empty_dir() local
2831 bh = ext4_read_dirblock(inode, 0, DIRENT_HTREE); in ext4_empty_dir()
2832 if (IS_ERR(bh)) in ext4_empty_dir()
2835 de = (struct ext4_dir_entry_2 *) bh->b_data; in ext4_empty_dir()
2836 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size, in ext4_empty_dir()
2840 brelse(bh); in ext4_empty_dir()
2845 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size, in ext4_empty_dir()
2849 brelse(bh); in ext4_empty_dir()
2856 brelse(bh); in ext4_empty_dir()
2858 bh = ext4_read_dirblock(inode, lblock, EITHER); in ext4_empty_dir()
2859 if (bh == NULL) { in ext4_empty_dir()
2863 if (IS_ERR(bh)) in ext4_empty_dir()
2866 de = (struct ext4_dir_entry_2 *) (bh->b_data + in ext4_empty_dir()
2868 if (ext4_check_dir_entry(inode, NULL, de, bh, in ext4_empty_dir()
2869 bh->b_data, bh->b_size, offset)) { in ext4_empty_dir()
2874 brelse(bh); in ext4_empty_dir()
2879 brelse(bh); in ext4_empty_dir()
2964 brelse(iloc.bh); in ext4_orphan_add()
3053 brelse(iloc.bh); in ext4_orphan_del()
3061 struct buffer_head *bh; in ext4_rmdir() local
3078 bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL); in ext4_rmdir()
3079 if (IS_ERR(bh)) in ext4_rmdir()
3080 return PTR_ERR(bh); in ext4_rmdir()
3081 if (!bh) in ext4_rmdir()
3105 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_rmdir()
3138 brelse(bh); in ext4_rmdir()
3148 struct buffer_head *bh; in ext4_unlink() local
3166 bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL); in ext4_unlink()
3167 if (IS_ERR(bh)) in ext4_unlink()
3168 return PTR_ERR(bh); in ext4_unlink()
3169 if (!bh) in ext4_unlink()
3189 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_unlink()
3217 brelse(bh); in ext4_unlink()
3422 struct buffer_head *bh; in ext4_get_first_dir_block() local
3428 bh = ext4_read_dirblock(inode, 0, DIRENT_HTREE); in ext4_get_first_dir_block()
3429 if (IS_ERR(bh)) { in ext4_get_first_dir_block()
3430 *retval = PTR_ERR(bh); in ext4_get_first_dir_block()
3434 (struct ext4_dir_entry_2 *)bh->b_data, in ext4_get_first_dir_block()
3436 return bh; in ext4_get_first_dir_block()
3451 struct buffer_head *bh; member
3507 BUFFER_TRACE(ent->bh, "get write access"); in ext4_setent()
3508 retval = ext4_journal_get_write_access(handle, ent->bh); in ext4_setent()
3518 BUFFER_TRACE(ent->bh, "call ext4_handle_dirty_metadata"); in ext4_setent()
3520 retval = ext4_handle_dirty_dirblock(handle, ent->dir, ent->bh); in ext4_setent()
3526 brelse(ent->bh); in ext4_setent()
3527 ent->bh = NULL; in ext4_setent()
3536 struct buffer_head *bh; in ext4_find_delete_entry() local
3539 bh = ext4_find_entry(dir, d_name, &de, NULL); in ext4_find_delete_entry()
3540 if (IS_ERR(bh)) in ext4_find_delete_entry()
3541 return PTR_ERR(bh); in ext4_find_delete_entry()
3542 if (bh) { in ext4_find_delete_entry()
3543 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_find_delete_entry()
3544 brelse(bh); in ext4_find_delete_entry()
3567 retval = ext4_delete_entry(handle, ent->dir, ent->de, ent->bh); in ext4_rename_delete()
3680 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, &old.de, NULL); in ext4_rename()
3681 if (IS_ERR(old.bh)) in ext4_rename()
3682 return PTR_ERR(old.bh); in ext4_rename()
3690 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino) in ext4_rename()
3693 new.bh = ext4_find_entry(new.dir, &new.dentry->d_name, in ext4_rename()
3695 if (IS_ERR(new.bh)) { in ext4_rename()
3696 retval = PTR_ERR(new.bh); in ext4_rename()
3697 new.bh = NULL; in ext4_rename()
3700 if (new.bh) { in ext4_rename()
3702 brelse(new.bh); in ext4_rename()
3703 new.bh = NULL; in ext4_rename()
3766 if (!new.bh) { in ext4_rename()
3827 brelse(old.bh); in ext4_rename()
3828 brelse(new.bh); in ext4_rename()
3873 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, in ext4_cross_rename()
3875 if (IS_ERR(old.bh)) in ext4_cross_rename()
3876 return PTR_ERR(old.bh); in ext4_cross_rename()
3884 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino) in ext4_cross_rename()
3887 new.bh = ext4_find_entry(new.dir, &new.dentry->d_name, in ext4_cross_rename()
3889 if (IS_ERR(new.bh)) { in ext4_cross_rename()
3890 retval = PTR_ERR(new.bh); in ext4_cross_rename()
3891 new.bh = NULL; in ext4_cross_rename()
3896 if (!new.bh || le32_to_cpu(new.de->inode) != new.inode->i_ino) in ext4_cross_rename()
3973 brelse(old.bh); in ext4_cross_rename()
3974 brelse(new.bh); in ext4_cross_rename()