Lines Matching defs:bh

58 	struct buffer_head *bh;
83 bh = ext4_bread(handle, inode, *block, EXT4_GET_BLOCKS_CREATE);
84 if (IS_ERR(bh))
85 return bh;
91 BUFFER_TRACE(bh, "get_write_access");
92 err = ext4_journal_get_write_access(handle, inode->i_sb, bh,
96 return bh;
99 brelse(bh);
130 struct buffer_head *bh;
142 bh = ERR_PTR(-EIO);
144 bh = ext4_bread(NULL, inode, block, 0);
145 if (IS_ERR(bh)) {
150 current->comm, PTR_ERR(bh));
152 return bh;
155 if (!bh && (type == INDEX || type == DIRENT_HTREE || block == 0)) {
161 if (!bh)
163 dirent = (struct ext4_dir_entry *) bh->b_data;
176 brelse(bh);
180 buffer_verified(bh))
181 return bh;
191 set_buffer_verified(bh);
196 brelse(bh);
201 if (ext4_dirblock_csum_verify(inode, bh) &&
203 set_buffer_verified(bh);
208 brelse(bh);
212 return bh;
274 struct buffer_head *bh;
301 void ext4_initialize_dirent_tail(struct buffer_head *bh,
304 struct ext4_dir_entry_tail *t = EXT4_DIRENT_TAIL(bh->b_data, blocksize);
314 struct buffer_head *bh)
322 d = (struct ext4_dir_entry *)bh->b_data;
323 top = (struct ext4_dir_entry *)(bh->b_data +
334 t = EXT4_DIRENT_TAIL(bh->b_data, EXT4_BLOCK_SIZE(inode->i_sb));
366 int ext4_dirblock_csum_verify(struct inode *inode, struct buffer_head *bh)
373 t = get_dirent_tail(inode, bh);
379 if (t->det_checksum != ext4_dirblock_csum(inode, bh->b_data,
380 (char *)t - bh->b_data))
387 struct buffer_head *bh)
394 t = get_dirent_tail(inode, bh);
400 t->det_checksum = ext4_dirblock_csum(inode, bh->b_data,
401 (char *)t - bh->b_data);
406 struct buffer_head *bh)
408 ext4_dirblock_csum_set(inode, bh);
409 return ext4_handle_dirty_metadata(handle, inode, bh);
516 struct buffer_head *bh)
518 ext4_dx_csum_set(inode, (struct ext4_dir_entry *)bh->b_data);
519 return ext4_handle_dirty_metadata(handle, inode, bh);
716 struct buffer_head *bh;
725 bh = ext4_bread(NULL,dir, block, 0);
726 if (!bh || IS_ERR(bh))
729 dx_show_entries(hinfo, dir, ((struct dx_node *) bh->b_data)->entries, levels - 1):
731 bh->b_data, blocksize, 0);
735 brelse(bh);
791 frame->bh = ext4_read_dirblock(dir, 0, INDEX);
792 if (IS_ERR(frame->bh))
793 return (struct dx_frame *) frame->bh;
795 root = (struct dx_root *) frame->bh->b_data;
910 frame->bh = ext4_read_dirblock(dir, block, INDEX);
911 if (IS_ERR(frame->bh)) {
912 ret_err = (struct dx_frame *) frame->bh;
913 frame->bh = NULL;
917 entries = ((struct dx_node *) frame->bh->b_data)->entries;
928 brelse(frame->bh);
944 if (frames[0].bh == NULL)
947 info = &((struct dx_root *)frames[0].bh->b_data)->info;
951 if (frames[i].bh == NULL)
953 brelse(frames[i].bh);
954 frames[i].bh = NULL;
981 struct buffer_head *bh;
1021 bh = ext4_read_dirblock(dir, dx_get_block(p->at), INDEX);
1022 if (IS_ERR(bh))
1023 return PTR_ERR(bh);
1025 brelse(p->bh);
1026 p->bh = bh;
1027 p->at = p->entries = ((struct dx_node *) bh->b_data)->entries;
1043 struct buffer_head *bh;
1051 bh = ext4_read_dirblock(dir, block, DIRENT_HTREE);
1052 if (IS_ERR(bh))
1053 return PTR_ERR(bh);
1055 de = (struct ext4_dir_entry_2 *) bh->b_data;
1065 brelse(bh);
1071 brelse(bh);
1077 if (ext4_check_dir_entry(dir, NULL, de, bh,
1078 bh->b_data, bh->b_size,
1080 + ((char *)de - bh->b_data))) {
1137 brelse(bh);
1201 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data;
1211 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data;
1262 static inline int search_dirblock(struct buffer_head *bh,
1268 return ext4_search_dir(bh, bh->b_data, dir->i_sb->s_blocksize, dir,
1280 static int dx_make_map(struct inode *dir, struct buffer_head *bh,
1285 struct ext4_dir_entry_2 *de = (struct ext4_dir_entry_2 *)bh->b_data;
1286 unsigned int buflen = bh->b_size;
1287 char *base = bh->b_data;
1295 if (ext4_check_dir_entry(dir, NULL, de, bh, base, buflen,
1456 int ext4_search_dir(struct buffer_head *bh, char *search_buf, int buf_size,
1473 if (ext4_check_dir_entry(dir, NULL, de, bh, search_buf,
1524 struct buffer_head *bh, *ret = NULL;
1527 size_t ra_max = 0; /* Number of bh's in the readahead
1609 if ((bh = bh_use[ra_ptr++]) == NULL)
1611 wait_on_buffer(bh);
1612 if (!buffer_uptodate(bh)) {
1616 brelse(bh);
1620 if (!buffer_verified(bh) &&
1622 (struct ext4_dir_entry *)bh->b_data) &&
1623 !ext4_dirblock_csum_verify(dir, bh)) {
1627 brelse(bh);
1631 set_buffer_verified(bh);
1632 i = search_dirblock(bh, dir, fname,
1636 ret = bh;
1639 brelse(bh);
1675 struct buffer_head *bh;
1683 bh = __ext4_find_entry(dir, &fname, res_dir, inlined);
1686 return bh;
1695 struct buffer_head *bh;
1703 bh = __ext4_find_entry(dir, &fname, res_dir, NULL);
1706 return bh;
1715 struct buffer_head *bh;
1727 bh = ext4_read_dirblock(dir, block, DIRENT_HTREE);
1728 if (IS_ERR(bh))
1731 retval = search_dirblock(bh, dir, fname,
1736 brelse(bh);
1738 bh = ERR_PTR(ERR_BAD_DX_DIR);
1749 bh = ERR_PTR(retval);
1754 bh = NULL;
1759 return bh;
1766 struct buffer_head *bh;
1771 bh = ext4_lookup_entry(dir, dentry, &de);
1772 if (IS_ERR(bh))
1773 return ERR_CAST(bh);
1775 if (bh) {
1777 brelse(bh);
1822 struct buffer_head *bh;
1824 bh = ext4_find_entry(d_inode(child), &dotdot_name, &de, NULL);
1825 if (IS_ERR(bh))
1826 return ERR_CAST(bh);
1827 if (!bh)
1830 brelse(bh);
1906 struct buffer_head **bh,struct dx_frame *frame,
1916 char *data1 = (*bh)->b_data, *data2;
1927 brelse(*bh);
1928 *bh = NULL;
1932 BUFFER_TRACE(*bh, "get_write_access");
1933 err = ext4_journal_get_write_access(handle, dir->i_sb, *bh,
1938 BUFFER_TRACE(frame->bh, "get_write_access");
1939 err = ext4_journal_get_write_access(handle, dir->i_sb, frame->bh,
1948 count = dx_make_map(dir, *bh, hinfo, map);
1979 ext4_error_inode_block(dir, (*bh)->b_blocknr, 0,
2003 ext4_initialize_dirent_tail(*bh, blocksize);
2014 swap(*bh, bh2);
2021 err = ext4_handle_dirty_dx_node(handle, dir, frame->bh);
2031 brelse(*bh);
2033 *bh = NULL;
2037 int ext4_find_dest_de(struct inode *dir, struct buffer_head *bh,
2051 if (ext4_check_dir_entry(dir, NULL, de, bh,
2113 struct buffer_head *bh)
2123 err = ext4_find_dest_de(dir, bh, bh->b_data,
2128 BUFFER_TRACE(bh, "get_write_access");
2129 err = ext4_journal_get_write_access(handle, dir->i_sb, bh,
2154 BUFFER_TRACE(bh, "call ext4_handle_dirty_metadata");
2155 err = ext4_handle_dirty_dirblock(handle, dir, bh);
2213 struct inode *inode, struct buffer_head *bh)
2233 BUFFER_TRACE(bh, "get_write_access");
2234 retval = ext4_journal_get_write_access(handle, dir->i_sb, bh,
2238 brelse(bh);
2242 root = (struct dx_root *) bh->b_data;
2244 brelse(bh);
2257 brelse(bh);
2271 brelse(bh);
2311 brelse(bh);
2319 frame->bh = bh;
2321 retval = ext4_handle_dirty_dx_node(handle, dir, frame->bh);
2362 struct buffer_head *bh = NULL;
2417 bh = ext4_read_dirblock(dir, block, DIRENT);
2418 if (bh == NULL) {
2419 bh = ext4_bread(handle, dir, block,
2423 if (IS_ERR(bh)) {
2424 retval = PTR_ERR(bh);
2425 bh = NULL;
2429 NULL, bh);
2436 inode, bh);
2437 bh = NULL; /* make_indexed_dir releases bh */
2440 brelse(bh);
2442 bh = ext4_append(handle, dir, &block);
2444 if (IS_ERR(bh)) {
2445 retval = PTR_ERR(bh);
2446 bh = NULL;
2449 de = (struct ext4_dir_entry_2 *) bh->b_data;
2454 ext4_initialize_dirent_tail(bh, blocksize);
2456 retval = add_dirent_to_buf(handle, &fname, dir, inode, de, bh);
2459 brelse(bh);
2473 struct buffer_head *bh;
2486 bh = ext4_read_dirblock(dir, dx_get_block(frame->at), DIRENT_HTREE);
2487 if (IS_ERR(bh)) {
2488 err = PTR_ERR(bh);
2489 bh = NULL;
2493 BUFFER_TRACE(bh, "get_write_access");
2494 err = ext4_journal_get_write_access(handle, sb, bh, EXT4_JTR_NONE);
2498 err = add_dirent_to_buf(handle, fname, dir, inode, NULL, bh);
2550 BUFFER_TRACE(frame->bh, "get_write_access");
2551 err = ext4_journal_get_write_access(handle, sb, frame->bh,
2563 BUFFER_TRACE(frame->bh, "get_write_access"); /* index root */
2565 (frame - 1)->bh,
2582 swap(frame->bh, bh2);
2595 (frame - 1)->bh);
2599 frame->bh);
2611 dxroot = (struct dx_root *)frames[0].bh->b_data;
2616 err = ext4_handle_dirty_dx_node(handle, dir, frame->bh);
2627 de = do_split(handle, dir, &bh, frame, &fname->hinfo);
2632 err = add_dirent_to_buf(handle, fname, dir, inode, de, bh);
2638 brelse(bh);
2654 struct buffer_head *bh,
2667 if (ext4_check_dir_entry(dir, NULL, de, bh,
2705 struct buffer_head *bh)
2711 err = ext4_delete_inline_entry(handle, dir, de_del, bh,
2720 BUFFER_TRACE(bh, "get_write_access");
2721 err = ext4_journal_get_write_access(handle, dir->i_sb, bh,
2726 err = ext4_generic_delete_entry(dir, de_del, bh, bh->b_data,
2731 BUFFER_TRACE(bh, "call ext4_handle_dirty_metadata");
2732 err = ext4_handle_dirty_dirblock(handle, dir, bh);
2919 struct buffer_head *bh, unsigned int parent_ino,
2922 struct ext4_dir_entry_2 *de = (struct ext4_dir_entry_2 *) bh->b_data;
2923 size_t blocksize = bh->b_size;
2946 header_size = (char *)de - bh->b_data;
2948 ext4_update_final_de(bh->b_data, inline_size + header_size,
2957 ext4_initialize_dirent_tail(bh, blocksize);
2959 set_buffer_uptodate(bh);
2960 set_buffer_verified(bh);
2961 return ext4_handle_dirty_dirblock(handle, inode, bh);
3065 struct buffer_head *bh;
3084 bh = ext4_read_dirblock(inode, 0, EITHER);
3085 if (IS_ERR(bh))
3088 de = (struct ext4_dir_entry_2 *) bh->b_data;
3089 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size,
3094 brelse(bh);
3099 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size,
3104 brelse(bh);
3111 brelse(bh);
3113 bh = ext4_read_dirblock(inode, lblock, EITHER);
3114 if (bh == NULL) {
3118 if (IS_ERR(bh))
3121 de = (struct ext4_dir_entry_2 *) (bh->b_data +
3123 if (ext4_check_dir_entry(inode, NULL, de, bh,
3124 bh->b_data, bh->b_size, offset) ||
3126 brelse(bh);
3131 brelse(bh);
3139 struct buffer_head *bh;
3157 bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL);
3158 if (IS_ERR(bh))
3159 return PTR_ERR(bh);
3160 if (!bh)
3184 retval = ext4_delete_entry(handle, dir, de, bh);
3219 brelse(bh);
3230 struct buffer_head *bh;
3239 bh = ext4_find_entry(dir, d_name, &de, NULL);
3240 if (IS_ERR(bh))
3241 return PTR_ERR(bh);
3243 if (!bh)
3269 retval = ext4_delete_entry(handle, dir, de, bh);
3294 brelse(bh);
3337 struct buffer_head *bh;
3341 bh = ext4_bread(handle, inode, 0, EXT4_GET_BLOCKS_CREATE);
3342 if (IS_ERR(bh))
3343 return PTR_ERR(bh);
3345 BUFFER_TRACE(bh, "get_write_access");
3346 err = ext4_journal_get_write_access(handle, inode->i_sb, bh, EXT4_JTR_NONE);
3350 kaddr = (char *)bh->b_data;
3354 err = ext4_handle_dirty_metadata(handle, inode, bh);
3356 brelse(bh);
3527 struct buffer_head *bh;
3533 bh = ext4_read_dirblock(inode, 0, EITHER);
3534 if (IS_ERR(bh)) {
3535 *retval = PTR_ERR(bh);
3539 de = (struct ext4_dir_entry_2 *) bh->b_data;
3540 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data,
3541 bh->b_size, 0) ||
3545 brelse(bh);
3552 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data,
3553 bh->b_size, offset) ||
3557 brelse(bh);
3563 return bh;
3578 struct buffer_head *bh;
3642 BUFFER_TRACE(ent->bh, "get write access");
3643 retval = ext4_journal_get_write_access(handle, ent->dir->i_sb, ent->bh,
3653 BUFFER_TRACE(ent->bh, "call ext4_handle_dirty_metadata");
3655 retval2 = ext4_handle_dirty_dirblock(handle, ent->dir, ent->bh);
3675 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, &old.de,
3677 if (IS_ERR(old.bh))
3678 retval = PTR_ERR(old.bh);
3679 if (!old.bh)
3687 brelse(old.bh);
3694 struct buffer_head *bh;
3697 bh = ext4_find_entry(dir, d_name, &de, NULL);
3698 if (IS_ERR(bh))
3699 return PTR_ERR(bh);
3700 if (bh) {
3701 retval = ext4_delete_entry(handle, dir, de, bh);
3702 brelse(bh);
3714 * to a stale entry in the unused part of ent->bh so just checking inum
3725 retval = ext4_delete_entry(handle, ent->dir, ent->de, ent->bh);
3843 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, &old.de,
3845 if (IS_ERR(old.bh))
3846 return PTR_ERR(old.bh);
3855 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino)
3858 new.bh = ext4_find_entry(new.dir, &new.dentry->d_name,
3860 if (IS_ERR(new.bh)) {
3861 retval = PTR_ERR(new.bh);
3862 new.bh = NULL;
3865 if (new.bh) {
3867 brelse(new.bh);
3868 new.bh = NULL;
3932 if (!new.bh) {
4041 brelse(old.bh);
4042 brelse(new.bh);
4079 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name,
4081 if (IS_ERR(old.bh))
4082 return PTR_ERR(old.bh);
4090 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino)
4093 new.bh = ext4_find_entry(new.dir, &new.dentry->d_name,
4095 if (IS_ERR(new.bh)) {
4096 retval = PTR_ERR(new.bh);
4097 new.bh = NULL;
4102 if (!new.bh || le32_to_cpu(new.de->inode) != new.inode->i_ino)
4181 brelse(old.bh);
4182 brelse(new.bh);