Lines Matching refs:handle

53 static struct buffer_head *ext4_append(handle_t *handle,  in ext4_append()  argument
83 bh = ext4_bread(handle, inode, *block, EXT4_GET_BLOCKS_CREATE); in ext4_append()
88 err = ext4_mark_inode_dirty(handle, inode); in ext4_append()
92 err = ext4_journal_get_write_access(handle, inode->i_sb, bh, in ext4_append()
327 static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname,
435 int ext4_handle_dirty_dirblock(handle_t *handle, in ext4_handle_dirty_dirblock() argument
440 return ext4_handle_dirty_metadata(handle, inode, bh); in ext4_handle_dirty_dirblock()
546 static inline int ext4_handle_dirty_dx_node(handle_t *handle, in ext4_handle_dirty_dx_node() argument
551 return ext4_handle_dirty_metadata(handle, inode, bh); in ext4_handle_dirty_dx_node()
1975 static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir, in do_split() argument
1995 bh2 = ext4_append(handle, dir, &newblock); in do_split()
2003 err = ext4_journal_get_write_access(handle, dir->i_sb, *bh, in do_split()
2009 err = ext4_journal_get_write_access(handle, dir->i_sb, frame->bh, in do_split()
2079 err = ext4_handle_dirty_dirblock(handle, dir, bh2); in do_split()
2082 err = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in do_split()
2171 static int add_dirent_to_buf(handle_t *handle, struct ext4_filename *fname, in add_dirent_to_buf() argument
2190 err = ext4_journal_get_write_access(handle, dir->i_sb, bh, in add_dirent_to_buf()
2214 err2 = ext4_mark_inode_dirty(handle, dir); in add_dirent_to_buf()
2216 err = ext4_handle_dirty_dirblock(handle, dir, bh); in add_dirent_to_buf()
2272 static int make_indexed_dir(handle_t *handle, struct ext4_filename *fname, in make_indexed_dir() argument
2295 retval = ext4_journal_get_write_access(handle, dir->i_sb, bh, in make_indexed_dir()
2316 bh2 = ext4_append(handle, dir, &block); in make_indexed_dir()
2383 retval = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in make_indexed_dir()
2386 retval = ext4_handle_dirty_dirblock(handle, dir, bh2); in make_indexed_dir()
2390 de = do_split(handle,dir, &bh2, frame, &fname->hinfo); in make_indexed_dir()
2396 retval = add_dirent_to_buf(handle, fname, dir, inode, de, bh2); in make_indexed_dir()
2404 ext4_mark_inode_dirty(handle, dir); in make_indexed_dir()
2420 static int ext4_add_entry(handle_t *handle, struct dentry *dentry, in ext4_add_entry() argument
2456 retval = ext4_try_add_inline_entry(handle, &fname, dir, inode); in ext4_add_entry()
2466 retval = ext4_dx_add_entry(handle, &fname, dir, inode); in ext4_add_entry()
2478 retval = ext4_mark_inode_dirty(handle, dir); in ext4_add_entry()
2486 bh = ext4_bread(handle, dir, block, in ext4_add_entry()
2495 retval = add_dirent_to_buf(handle, &fname, dir, inode, in ext4_add_entry()
2502 retval = make_indexed_dir(handle, &fname, dir, in ext4_add_entry()
2509 bh = ext4_append(handle, dir, &block); in ext4_add_entry()
2523 retval = add_dirent_to_buf(handle, &fname, dir, inode, de, bh); in ext4_add_entry()
2535 static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname, in ext4_dx_add_entry() argument
2561 err = ext4_journal_get_write_access(handle, sb, bh, EXT4_JTR_NONE); in ext4_dx_add_entry()
2565 err = add_dirent_to_buf(handle, fname, dir, inode, NULL, bh); in ext4_dx_add_entry()
2607 bh2 = ext4_append(handle, dir, &newblock); in ext4_dx_add_entry()
2618 err = ext4_journal_get_write_access(handle, sb, frame->bh, in ext4_dx_add_entry()
2629 err = ext4_journal_get_write_access(handle, sb, in ext4_dx_add_entry()
2651 err = ext4_handle_dirty_dx_node(handle, dir, bh2); in ext4_dx_add_entry()
2655 err = ext4_handle_dirty_dx_node(handle, dir, in ext4_dx_add_entry()
2659 err = ext4_handle_dirty_dx_node(handle, dir, in ext4_dx_add_entry()
2677 err = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in ext4_dx_add_entry()
2680 err = ext4_handle_dirty_dx_node(handle, dir, bh2); in ext4_dx_add_entry()
2686 de = do_split(handle, dir, &bh, frame, &fname->hinfo); in ext4_dx_add_entry()
2691 err = add_dirent_to_buf(handle, fname, dir, inode, de, bh); in ext4_dx_add_entry()
2761 static int ext4_delete_entry(handle_t *handle, in ext4_delete_entry() argument
2770 err = ext4_delete_inline_entry(handle, dir, de_del, bh, in ext4_delete_entry()
2780 err = ext4_journal_get_write_access(handle, dir->i_sb, bh, in ext4_delete_entry()
2791 err = ext4_handle_dirty_dirblock(handle, dir, bh); in ext4_delete_entry()
2838 static int ext4_add_nondir(handle_t *handle, in ext4_add_nondir() argument
2843 int err = ext4_add_entry(handle, dentry, inode); in ext4_add_nondir()
2845 err = ext4_mark_inode_dirty(handle, inode); in ext4_add_nondir()
2847 ext4_handle_sync(handle); in ext4_add_nondir()
2853 ext4_mark_inode_dirty(handle, inode); in ext4_add_nondir()
2854 ext4_orphan_add(handle, inode); in ext4_add_nondir()
2870 handle_t *handle; in ext4_create() local
2883 handle = ext4_journal_current_handle(); in ext4_create()
2889 err = ext4_add_nondir(handle, dentry, &inode); in ext4_create()
2891 ext4_fc_track_create(handle, dentry); in ext4_create()
2893 if (handle) in ext4_create()
2894 ext4_journal_stop(handle); in ext4_create()
2905 handle_t *handle; in ext4_mknod() local
2918 handle = ext4_journal_current_handle(); in ext4_mknod()
2923 err = ext4_add_nondir(handle, dentry, &inode); in ext4_mknod()
2925 ext4_fc_track_create(handle, dentry); in ext4_mknod()
2927 if (handle) in ext4_mknod()
2928 ext4_journal_stop(handle); in ext4_mknod()
2939 handle_t *handle; in ext4_tmpfile() local
2953 handle = ext4_journal_current_handle(); in ext4_tmpfile()
2960 err = ext4_orphan_add(handle, inode); in ext4_tmpfile()
2966 if (handle) in ext4_tmpfile()
2967 ext4_journal_stop(handle); in ext4_tmpfile()
2972 ext4_journal_stop(handle); in ext4_tmpfile()
3006 int ext4_init_new_dir(handle_t *handle, struct inode *dir, in ext4_init_new_dir() argument
3020 err = ext4_try_create_inline_dir(handle, dir, inode); in ext4_init_new_dir()
3028 dir_block = ext4_append(handle, inode, &block); in ext4_init_new_dir()
3038 err = ext4_handle_dirty_dirblock(handle, inode, dir_block); in ext4_init_new_dir()
3050 handle_t *handle; in ext4_mkdir() local
3067 handle = ext4_journal_current_handle(); in ext4_mkdir()
3074 err = ext4_init_new_dir(handle, dir, inode); in ext4_mkdir()
3077 err = ext4_mark_inode_dirty(handle, inode); in ext4_mkdir()
3079 err = ext4_add_entry(handle, dentry, inode); in ext4_mkdir()
3083 ext4_orphan_add(handle, inode); in ext4_mkdir()
3085 err2 = ext4_mark_inode_dirty(handle, inode); in ext4_mkdir()
3088 ext4_journal_stop(handle); in ext4_mkdir()
3095 err = ext4_mark_inode_dirty(handle, dir); in ext4_mkdir()
3099 ext4_fc_track_create(handle, dentry); in ext4_mkdir()
3101 ext4_handle_sync(handle); in ext4_mkdir()
3104 if (handle) in ext4_mkdir()
3105 ext4_journal_stop(handle); in ext4_mkdir()
3192 handle_t *handle = NULL; in ext4_rmdir() local
3223 handle = ext4_journal_start(dir, EXT4_HT_DIR, in ext4_rmdir()
3225 if (IS_ERR(handle)) { in ext4_rmdir()
3226 retval = PTR_ERR(handle); in ext4_rmdir()
3227 handle = NULL; in ext4_rmdir()
3232 ext4_handle_sync(handle); in ext4_rmdir()
3234 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_rmdir()
3248 ext4_orphan_add(handle, inode); in ext4_rmdir()
3251 retval = ext4_mark_inode_dirty(handle, inode); in ext4_rmdir()
3256 ext4_fc_track_unlink(handle, dentry); in ext4_rmdir()
3257 retval = ext4_mark_inode_dirty(handle, dir); in ext4_rmdir()
3272 if (handle) in ext4_rmdir()
3273 ext4_journal_stop(handle); in ext4_rmdir()
3284 handle_t *handle; in __ext4_unlink() local
3310 handle = ext4_journal_start(dir, EXT4_HT_DIR, in __ext4_unlink()
3312 if (IS_ERR(handle)) { in __ext4_unlink()
3313 retval = PTR_ERR(handle); in __ext4_unlink()
3318 ext4_handle_sync(handle); in __ext4_unlink()
3321 retval = ext4_delete_entry(handle, dir, de, bh); in __ext4_unlink()
3326 retval = ext4_mark_inode_dirty(handle, dir); in __ext4_unlink()
3338 ext4_orphan_add(handle, inode); in __ext4_unlink()
3340 retval = ext4_mark_inode_dirty(handle, inode); in __ext4_unlink()
3342 ext4_fc_track_unlink(handle, dentry); in __ext4_unlink()
3344 ext4_journal_stop(handle); in __ext4_unlink()
3386 static int ext4_init_symlink_block(handle_t *handle, struct inode *inode, in ext4_init_symlink_block() argument
3393 bh = ext4_bread(handle, inode, 0, EXT4_GET_BLOCKS_CREATE); in ext4_init_symlink_block()
3398 err = ext4_journal_get_write_access(handle, inode->i_sb, bh, EXT4_JTR_NONE); in ext4_init_symlink_block()
3406 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_init_symlink_block()
3415 handle_t *handle; in ext4_symlink() local
3446 handle = ext4_journal_current_handle(); in ext4_symlink()
3448 if (handle) in ext4_symlink()
3449 ext4_journal_stop(handle); in ext4_symlink()
3470 err = ext4_init_symlink_block(handle, inode, &disk_link); in ext4_symlink()
3481 err = ext4_add_nondir(handle, dentry, &inode); in ext4_symlink()
3482 if (handle) in ext4_symlink()
3483 ext4_journal_stop(handle); in ext4_symlink()
3489 ext4_mark_inode_dirty(handle, inode); in ext4_symlink()
3490 ext4_orphan_add(handle, inode); in ext4_symlink()
3492 if (handle) in ext4_symlink()
3493 ext4_journal_stop(handle); in ext4_symlink()
3505 handle_t *handle; in __ext4_link() local
3508 handle = ext4_journal_start(dir, EXT4_HT_DIR, in __ext4_link()
3511 if (IS_ERR(handle)) in __ext4_link()
3512 return PTR_ERR(handle); in __ext4_link()
3515 ext4_handle_sync(handle); in __ext4_link()
3521 err = ext4_add_entry(handle, dentry, inode); in __ext4_link()
3523 err = ext4_mark_inode_dirty(handle, inode); in __ext4_link()
3528 ext4_orphan_del(handle, inode); in __ext4_link()
3530 ext4_fc_track_link(handle, dentry); in __ext4_link()
3535 ext4_journal_stop(handle); in __ext4_link()
3570 static struct buffer_head *ext4_get_first_dir_block(handle_t *handle, in ext4_get_first_dir_block() argument
3636 static int ext4_rename_dir_prepare(handle_t *handle, struct ext4_renament *ent) in ext4_rename_dir_prepare() argument
3640 ent->dir_bh = ext4_get_first_dir_block(handle, ent->inode, in ext4_rename_dir_prepare()
3648 return ext4_journal_get_write_access(handle, ent->dir->i_sb, in ext4_rename_dir_prepare()
3652 static int ext4_rename_dir_finish(handle_t *handle, struct ext4_renament *ent, in ext4_rename_dir_finish() argument
3661 retval = ext4_handle_dirty_dx_node(handle, in ext4_rename_dir_finish()
3665 retval = ext4_handle_dirty_dirblock(handle, ent->inode, in ext4_rename_dir_finish()
3669 retval = ext4_mark_inode_dirty(handle, ent->inode); in ext4_rename_dir_finish()
3678 static int ext4_setent(handle_t *handle, struct ext4_renament *ent, in ext4_setent() argument
3684 retval = ext4_journal_get_write_access(handle, ent->dir->i_sb, ent->bh, in ext4_setent()
3693 retval = ext4_mark_inode_dirty(handle, ent->dir); in ext4_setent()
3696 retval2 = ext4_handle_dirty_dirblock(handle, ent->dir, ent->bh); in ext4_setent()
3705 static void ext4_resetent(handle_t *handle, struct ext4_renament *ent, in ext4_resetent() argument
3727 ext4_setent(handle, &old, ino, file_type); in ext4_resetent()
3731 static int ext4_find_delete_entry(handle_t *handle, struct inode *dir, in ext4_find_delete_entry() argument
3742 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_find_delete_entry()
3748 static void ext4_rename_delete(handle_t *handle, struct ext4_renament *ent, in ext4_rename_delete() argument
3763 retval = ext4_find_delete_entry(handle, ent->dir, in ext4_rename_delete()
3766 retval = ext4_delete_entry(handle, ent->dir, ent->de, ent->bh); in ext4_rename_delete()
3768 retval = ext4_find_delete_entry(handle, ent->dir, in ext4_rename_delete()
3780 static void ext4_update_dir_count(handle_t *handle, struct ext4_renament *ent) in ext4_update_dir_count() argument
3787 ext4_mark_inode_dirty(handle, ent->dir); in ext4_update_dir_count()
3796 handle_t *handle; in ext4_whiteout_for_rename() local
3811 handle = ext4_journal_current_handle(); in ext4_whiteout_for_rename()
3813 if (handle) in ext4_whiteout_for_rename()
3814 ext4_journal_stop(handle); in ext4_whiteout_for_rename()
3819 *h = handle; in ext4_whiteout_for_rename()
3838 handle_t *handle = NULL; in ext4_rename() local
3918 handle = ext4_journal_start(old.dir, EXT4_HT_DIR, credits); in ext4_rename()
3919 if (IS_ERR(handle)) { in ext4_rename()
3920 retval = PTR_ERR(handle); in ext4_rename()
3924 whiteout = ext4_whiteout_for_rename(idmap, &old, credits, &handle); in ext4_rename()
3933 ext4_handle_sync(handle); in ext4_rename()
3945 retval = ext4_rename_dir_prepare(handle, &old); in ext4_rename()
3964 retval = ext4_setent(handle, &old, whiteout->i_ino, in ext4_rename()
3968 retval = ext4_mark_inode_dirty(handle, whiteout); in ext4_rename()
3974 retval = ext4_add_entry(handle, new.dentry, old.inode); in ext4_rename()
3978 retval = ext4_setent(handle, &new, in ext4_rename()
3992 retval = ext4_mark_inode_dirty(handle, old.inode); in ext4_rename()
4000 ext4_rename_delete(handle, &old, force_reread); in ext4_rename()
4010 retval = ext4_rename_dir_finish(handle, &old, new.dir->i_ino); in ext4_rename()
4023 retval = ext4_mark_inode_dirty(handle, new.dir); in ext4_rename()
4028 retval = ext4_mark_inode_dirty(handle, old.dir); in ext4_rename()
4039 EXT4_FC_REASON_RENAME_DIR, handle); in ext4_rename()
4044 ext4_fc_track_unlink(handle, new.dentry); in ext4_rename()
4048 __ext4_fc_track_link(handle, old.inode, new.dentry); in ext4_rename()
4049 __ext4_fc_track_unlink(handle, old.inode, old.dentry); in ext4_rename()
4051 __ext4_fc_track_create(handle, whiteout, in ext4_rename()
4057 retval = ext4_mark_inode_dirty(handle, new.inode); in ext4_rename()
4061 ext4_orphan_add(handle, new.inode); in ext4_rename()
4068 ext4_resetent(handle, &old, in ext4_rename()
4071 ext4_mark_inode_dirty(handle, whiteout); in ext4_rename()
4072 ext4_orphan_add(handle, whiteout); in ext4_rename()
4075 ext4_journal_stop(handle); in ext4_rename()
4078 ext4_journal_stop(handle); in ext4_rename()
4091 handle_t *handle = NULL; in ext4_cross_rename() local
4146 handle = ext4_journal_start(old.dir, EXT4_HT_DIR, in ext4_cross_rename()
4149 if (IS_ERR(handle)) { in ext4_cross_rename()
4150 retval = PTR_ERR(handle); in ext4_cross_rename()
4151 handle = NULL; in ext4_cross_rename()
4156 ext4_handle_sync(handle); in ext4_cross_rename()
4160 retval = ext4_rename_dir_prepare(handle, &old); in ext4_cross_rename()
4166 retval = ext4_rename_dir_prepare(handle, &new); in ext4_cross_rename()
4185 retval = ext4_setent(handle, &new, old.inode->i_ino, old.de->file_type); in ext4_cross_rename()
4189 retval = ext4_setent(handle, &old, new.inode->i_ino, new_file_type); in ext4_cross_rename()
4199 retval = ext4_mark_inode_dirty(handle, old.inode); in ext4_cross_rename()
4202 retval = ext4_mark_inode_dirty(handle, new.inode); in ext4_cross_rename()
4206 EXT4_FC_REASON_CROSS_RENAME, handle); in ext4_cross_rename()
4208 retval = ext4_rename_dir_finish(handle, &old, new.dir->i_ino); in ext4_cross_rename()
4213 retval = ext4_rename_dir_finish(handle, &new, old.dir->i_ino); in ext4_cross_rename()
4217 ext4_update_dir_count(handle, &old); in ext4_cross_rename()
4218 ext4_update_dir_count(handle, &new); in ext4_cross_rename()
4226 if (handle) in ext4_cross_rename()
4227 ext4_journal_stop(handle); in ext4_cross_rename()