Lines Matching refs:handle
50 static struct buffer_head *ext4_append(handle_t *handle, in ext4_append() argument
64 bh = ext4_bread(handle, inode, *block, EXT4_GET_BLOCKS_CREATE); in ext4_append()
70 err = ext4_journal_get_write_access(handle, bh); in ext4_append()
275 static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname,
381 int ext4_handle_dirty_dirent_node(handle_t *handle, in ext4_handle_dirty_dirent_node() argument
386 return ext4_handle_dirty_metadata(handle, inode, bh); in ext4_handle_dirty_dirent_node()
492 static inline int ext4_handle_dirty_dx_node(handle_t *handle, in ext4_handle_dirty_dx_node() argument
497 return ext4_handle_dirty_metadata(handle, inode, bh); in ext4_handle_dirty_dx_node()
1682 static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir, in do_split() argument
1702 bh2 = ext4_append(handle, dir, &newblock); in do_split()
1710 err = ext4_journal_get_write_access(handle, *bh); in do_split()
1715 err = ext4_journal_get_write_access(handle, frame->bh); in do_split()
1774 err = ext4_handle_dirty_dirent_node(handle, dir, bh2); in do_split()
1777 err = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in do_split()
1873 static int add_dirent_to_buf(handle_t *handle, struct ext4_filename *fname, in add_dirent_to_buf() argument
1892 err = ext4_journal_get_write_access(handle, bh); in add_dirent_to_buf()
1918 ext4_mark_inode_dirty(handle, dir); in add_dirent_to_buf()
1920 err = ext4_handle_dirty_dirent_node(handle, dir, bh); in add_dirent_to_buf()
1930 static int make_indexed_dir(handle_t *handle, struct ext4_filename *fname, in make_indexed_dir() argument
1955 retval = ext4_journal_get_write_access(handle, bh); in make_indexed_dir()
1975 bh2 = ext4_append(handle, dir, &block); in make_indexed_dir()
2023 retval = ext4_handle_dirty_dx_node(handle, dir, frame->bh); in make_indexed_dir()
2026 retval = ext4_handle_dirty_dirent_node(handle, dir, bh); in make_indexed_dir()
2030 de = do_split(handle,dir, &bh, frame, &fname->hinfo); in make_indexed_dir()
2037 retval = add_dirent_to_buf(handle, fname, dir, inode, de, bh); in make_indexed_dir()
2046 ext4_mark_inode_dirty(handle, dir); in make_indexed_dir()
2061 static int ext4_add_entry(handle_t *handle, struct dentry *dentry, in ext4_add_entry() argument
2089 retval = ext4_try_add_inline_entry(handle, &fname, in ext4_add_entry()
2100 retval = ext4_dx_add_entry(handle, &fname, dentry, inode); in ext4_add_entry()
2105 ext4_mark_inode_dirty(handle, dir); in ext4_add_entry()
2115 retval = add_dirent_to_buf(handle, &fname, dir, inode, in ext4_add_entry()
2122 retval = make_indexed_dir(handle, &fname, dentry, in ext4_add_entry()
2129 bh = ext4_append(handle, dir, &block); in ext4_add_entry()
2144 retval = add_dirent_to_buf(handle, &fname, dir, inode, de, bh); in ext4_add_entry()
2156 static int ext4_dx_add_entry(handle_t *handle, struct ext4_filename *fname, in ext4_dx_add_entry() argument
2180 err = ext4_journal_get_write_access(handle, bh); in ext4_dx_add_entry()
2184 err = add_dirent_to_buf(handle, fname, dir, inode, NULL, bh); in ext4_dx_add_entry()
2206 bh2 = ext4_append(handle, dir, &newblock); in ext4_dx_add_entry()
2217 err = ext4_journal_get_write_access(handle, frame->bh); in ext4_dx_add_entry()
2227 err = ext4_journal_get_write_access(handle, in ext4_dx_add_entry()
2248 err = ext4_handle_dirty_dx_node(handle, dir, bh2); in ext4_dx_add_entry()
2269 err = ext4_journal_get_write_access(handle, in ext4_dx_add_entry()
2274 err = ext4_handle_dirty_dx_node(handle, dir, frames[0].bh); in ext4_dx_add_entry()
2280 de = do_split(handle, dir, &bh, frame, &fname->hinfo); in ext4_dx_add_entry()
2285 err = add_dirent_to_buf(handle, fname, dir, inode, de, bh); in ext4_dx_add_entry()
2300 int ext4_generic_delete_entry(handle_t *handle, in ext4_generic_delete_entry() argument
2339 static int ext4_delete_entry(handle_t *handle, in ext4_delete_entry() argument
2348 err = ext4_delete_inline_entry(handle, dir, de_del, bh, in ext4_delete_entry()
2358 err = ext4_journal_get_write_access(handle, bh); in ext4_delete_entry()
2362 err = ext4_generic_delete_entry(handle, dir, de_del, in ext4_delete_entry()
2369 err = ext4_handle_dirty_dirent_node(handle, dir, bh); in ext4_delete_entry()
2384 static void ext4_inc_count(handle_t *handle, struct inode *inode) in ext4_inc_count() argument
2400 static void ext4_dec_count(handle_t *handle, struct inode *inode) in ext4_dec_count() argument
2407 static int ext4_add_nondir(handle_t *handle, in ext4_add_nondir() argument
2410 int err = ext4_add_entry(handle, dentry, inode); in ext4_add_nondir()
2412 ext4_mark_inode_dirty(handle, inode); in ext4_add_nondir()
2434 handle_t *handle; in ext4_create() local
2447 handle = ext4_journal_current_handle(); in ext4_create()
2453 err = ext4_add_nondir(handle, dentry, inode); in ext4_create()
2455 ext4_handle_sync(handle); in ext4_create()
2457 if (handle) in ext4_create()
2458 ext4_journal_stop(handle); in ext4_create()
2467 handle_t *handle; in ext4_mknod() local
2480 handle = ext4_journal_current_handle(); in ext4_mknod()
2485 err = ext4_add_nondir(handle, dentry, inode); in ext4_mknod()
2487 ext4_handle_sync(handle); in ext4_mknod()
2489 if (handle) in ext4_mknod()
2490 ext4_journal_stop(handle); in ext4_mknod()
2498 handle_t *handle; in ext4_tmpfile() local
2512 handle = ext4_journal_current_handle(); in ext4_tmpfile()
2519 err = ext4_orphan_add(handle, inode); in ext4_tmpfile()
2525 if (handle) in ext4_tmpfile()
2526 ext4_journal_stop(handle); in ext4_tmpfile()
2531 ext4_journal_stop(handle); in ext4_tmpfile()
2564 static int ext4_init_new_dir(handle_t *handle, struct inode *dir, in ext4_init_new_dir() argument
2579 err = ext4_try_create_inline_dir(handle, dir, inode); in ext4_init_new_dir()
2587 dir_block = ext4_append(handle, inode, &block); in ext4_init_new_dir()
2599 err = ext4_handle_dirty_dirent_node(handle, inode, dir_block); in ext4_init_new_dir()
2610 handle_t *handle; in ext4_mkdir() local
2627 handle = ext4_journal_current_handle(); in ext4_mkdir()
2634 err = ext4_init_new_dir(handle, dir, inode); in ext4_mkdir()
2637 err = ext4_mark_inode_dirty(handle, inode); in ext4_mkdir()
2639 err = ext4_add_entry(handle, dentry, inode); in ext4_mkdir()
2644 ext4_mark_inode_dirty(handle, inode); in ext4_mkdir()
2648 ext4_inc_count(handle, dir); in ext4_mkdir()
2650 err = ext4_mark_inode_dirty(handle, dir); in ext4_mkdir()
2656 ext4_handle_sync(handle); in ext4_mkdir()
2659 if (handle) in ext4_mkdir()
2660 ext4_journal_stop(handle); in ext4_mkdir()
2747 int ext4_orphan_add(handle_t *handle, struct inode *inode) in ext4_orphan_add() argument
2777 err = ext4_journal_get_write_access(handle, sbi->s_sbh); in ext4_orphan_add()
2781 err = ext4_reserve_inode_write(handle, inode, &iloc); in ext4_orphan_add()
2801 err = ext4_handle_dirty_super(handle, sb); in ext4_orphan_add()
2802 rc = ext4_mark_iloc_dirty(handle, inode, &iloc); in ext4_orphan_add()
2828 int ext4_orphan_del(handle_t *handle, struct inode *inode) in ext4_orphan_del() argument
2846 if (handle) { in ext4_orphan_del()
2848 err = ext4_reserve_inode_write(handle, inode, &iloc); in ext4_orphan_del()
2861 if (!handle || err) { in ext4_orphan_del()
2870 err = ext4_journal_get_write_access(handle, sbi->s_sbh); in ext4_orphan_del()
2877 err = ext4_handle_dirty_super(handle, inode->i_sb); in ext4_orphan_del()
2885 err = ext4_reserve_inode_write(handle, i_prev, &iloc2); in ext4_orphan_del()
2891 err = ext4_mark_iloc_dirty(handle, i_prev, &iloc2); in ext4_orphan_del()
2897 err = ext4_mark_iloc_dirty(handle, inode, &iloc); in ext4_orphan_del()
2913 handle_t *handle = NULL; in ext4_rmdir() local
2941 handle = ext4_journal_start(dir, EXT4_HT_DIR, in ext4_rmdir()
2943 if (IS_ERR(handle)) { in ext4_rmdir()
2944 retval = PTR_ERR(handle); in ext4_rmdir()
2945 handle = NULL; in ext4_rmdir()
2950 ext4_handle_sync(handle); in ext4_rmdir()
2952 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_rmdir()
2966 ext4_orphan_add(handle, inode); in ext4_rmdir()
2968 ext4_mark_inode_dirty(handle, inode); in ext4_rmdir()
2969 ext4_dec_count(handle, dir); in ext4_rmdir()
2971 ext4_mark_inode_dirty(handle, dir); in ext4_rmdir()
2975 if (handle) in ext4_rmdir()
2976 ext4_journal_stop(handle); in ext4_rmdir()
2986 handle_t *handle = NULL; in ext4_unlink() local
3011 handle = ext4_journal_start(dir, EXT4_HT_DIR, in ext4_unlink()
3013 if (IS_ERR(handle)) { in ext4_unlink()
3014 retval = PTR_ERR(handle); in ext4_unlink()
3015 handle = NULL; in ext4_unlink()
3020 ext4_handle_sync(handle); in ext4_unlink()
3027 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_unlink()
3032 ext4_mark_inode_dirty(handle, dir); in ext4_unlink()
3035 ext4_orphan_add(handle, inode); in ext4_unlink()
3037 ext4_mark_inode_dirty(handle, inode); in ext4_unlink()
3041 if (handle) in ext4_unlink()
3042 ext4_journal_stop(handle); in ext4_unlink()
3050 handle_t *handle; in ext4_symlink() local
3108 handle = ext4_journal_current_handle(); in ext4_symlink()
3110 if (handle) in ext4_symlink()
3111 ext4_journal_stop(handle); in ext4_symlink()
3147 err = ext4_orphan_add(handle, inode); in ext4_symlink()
3148 ext4_journal_stop(handle); in ext4_symlink()
3149 handle = NULL; in ext4_symlink()
3159 handle = ext4_journal_start(dir, EXT4_HT_DIR, in ext4_symlink()
3162 if (IS_ERR(handle)) { in ext4_symlink()
3163 err = PTR_ERR(handle); in ext4_symlink()
3164 handle = NULL; in ext4_symlink()
3168 err = ext4_orphan_del(handle, inode); in ext4_symlink()
3183 err = ext4_add_nondir(handle, dentry, inode); in ext4_symlink()
3185 ext4_handle_sync(handle); in ext4_symlink()
3187 if (handle) in ext4_symlink()
3188 ext4_journal_stop(handle); in ext4_symlink()
3192 if (handle) in ext4_symlink()
3193 ext4_journal_stop(handle); in ext4_symlink()
3205 handle_t *handle; in ext4_link() local
3219 handle = ext4_journal_start(dir, EXT4_HT_DIR, in ext4_link()
3222 if (IS_ERR(handle)) in ext4_link()
3223 return PTR_ERR(handle); in ext4_link()
3226 ext4_handle_sync(handle); in ext4_link()
3229 ext4_inc_count(handle, inode); in ext4_link()
3232 err = ext4_add_entry(handle, dentry, inode); in ext4_link()
3234 ext4_mark_inode_dirty(handle, inode); in ext4_link()
3239 ext4_orphan_del(handle, inode); in ext4_link()
3245 ext4_journal_stop(handle); in ext4_link()
3257 static struct buffer_head *ext4_get_first_dir_block(handle_t *handle, in ext4_get_first_dir_block() argument
3299 static int ext4_rename_dir_prepare(handle_t *handle, struct ext4_renament *ent) in ext4_rename_dir_prepare() argument
3303 ent->dir_bh = ext4_get_first_dir_block(handle, ent->inode, in ext4_rename_dir_prepare()
3311 return ext4_journal_get_write_access(handle, ent->dir_bh); in ext4_rename_dir_prepare()
3314 static int ext4_rename_dir_finish(handle_t *handle, struct ext4_renament *ent, in ext4_rename_dir_finish() argument
3323 retval = ext4_handle_dirty_dx_node(handle, in ext4_rename_dir_finish()
3327 retval = ext4_handle_dirty_dirent_node(handle, in ext4_rename_dir_finish()
3332 retval = ext4_mark_inode_dirty(handle, ent->inode); in ext4_rename_dir_finish()
3341 static int ext4_setent(handle_t *handle, struct ext4_renament *ent, in ext4_setent() argument
3347 retval = ext4_journal_get_write_access(handle, ent->bh); in ext4_setent()
3356 ext4_mark_inode_dirty(handle, ent->dir); in ext4_setent()
3359 retval = ext4_handle_dirty_dirent_node(handle, in ext4_setent()
3372 static int ext4_find_delete_entry(handle_t *handle, struct inode *dir, in ext4_find_delete_entry() argument
3383 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_find_delete_entry()
3389 static void ext4_rename_delete(handle_t *handle, struct ext4_renament *ent, in ext4_rename_delete() argument
3404 retval = ext4_find_delete_entry(handle, ent->dir, in ext4_rename_delete()
3407 retval = ext4_delete_entry(handle, ent->dir, ent->de, ent->bh); in ext4_rename_delete()
3409 retval = ext4_find_delete_entry(handle, ent->dir, in ext4_rename_delete()
3421 static void ext4_update_dir_count(handle_t *handle, struct ext4_renament *ent) in ext4_update_dir_count() argument
3425 ext4_dec_count(handle, ent->dir); in ext4_update_dir_count()
3427 ext4_inc_count(handle, ent->dir); in ext4_update_dir_count()
3428 ext4_mark_inode_dirty(handle, ent->dir); in ext4_update_dir_count()
3436 handle_t *handle; in ext4_whiteout_for_rename() local
3450 handle = ext4_journal_current_handle(); in ext4_whiteout_for_rename()
3452 if (handle) in ext4_whiteout_for_rename()
3453 ext4_journal_stop(handle); in ext4_whiteout_for_rename()
3458 *h = handle; in ext4_whiteout_for_rename()
3477 handle_t *handle = NULL; in ext4_rename() local
3549 handle = ext4_journal_start(old.dir, EXT4_HT_DIR, credits); in ext4_rename()
3550 if (IS_ERR(handle)) { in ext4_rename()
3551 retval = PTR_ERR(handle); in ext4_rename()
3552 handle = NULL; in ext4_rename()
3556 whiteout = ext4_whiteout_for_rename(&old, credits, &handle); in ext4_rename()
3565 ext4_handle_sync(handle); in ext4_rename()
3577 retval = ext4_rename_dir_prepare(handle, &old); in ext4_rename()
3597 retval = ext4_setent(handle, &old, whiteout->i_ino, in ext4_rename()
3601 ext4_mark_inode_dirty(handle, whiteout); in ext4_rename()
3604 retval = ext4_add_entry(handle, new.dentry, old.inode); in ext4_rename()
3608 retval = ext4_setent(handle, &new, in ext4_rename()
3622 ext4_mark_inode_dirty(handle, old.inode); in ext4_rename()
3628 ext4_rename_delete(handle, &old, force_reread); in ext4_rename()
3632 ext4_dec_count(handle, new.inode); in ext4_rename()
3638 retval = ext4_rename_dir_finish(handle, &old, new.dir->i_ino); in ext4_rename()
3642 ext4_dec_count(handle, old.dir); in ext4_rename()
3649 ext4_inc_count(handle, new.dir); in ext4_rename()
3651 ext4_mark_inode_dirty(handle, new.dir); in ext4_rename()
3654 ext4_mark_inode_dirty(handle, old.dir); in ext4_rename()
3656 ext4_mark_inode_dirty(handle, new.inode); in ext4_rename()
3658 ext4_orphan_add(handle, new.inode); in ext4_rename()
3672 if (handle) in ext4_rename()
3673 ext4_journal_stop(handle); in ext4_rename()
3680 handle_t *handle = NULL; in ext4_cross_rename() local
3736 handle = ext4_journal_start(old.dir, EXT4_HT_DIR, in ext4_cross_rename()
3739 if (IS_ERR(handle)) { in ext4_cross_rename()
3740 retval = PTR_ERR(handle); in ext4_cross_rename()
3741 handle = NULL; in ext4_cross_rename()
3746 ext4_handle_sync(handle); in ext4_cross_rename()
3750 retval = ext4_rename_dir_prepare(handle, &old); in ext4_cross_rename()
3756 retval = ext4_rename_dir_prepare(handle, &new); in ext4_cross_rename()
3775 retval = ext4_setent(handle, &new, old.inode->i_ino, old.de->file_type); in ext4_cross_rename()
3779 retval = ext4_setent(handle, &old, new.inode->i_ino, new_file_type); in ext4_cross_rename()
3789 ext4_mark_inode_dirty(handle, old.inode); in ext4_cross_rename()
3790 ext4_mark_inode_dirty(handle, new.inode); in ext4_cross_rename()
3793 retval = ext4_rename_dir_finish(handle, &old, new.dir->i_ino); in ext4_cross_rename()
3798 retval = ext4_rename_dir_finish(handle, &new, old.dir->i_ino); in ext4_cross_rename()
3802 ext4_update_dir_count(handle, &old); in ext4_cross_rename()
3803 ext4_update_dir_count(handle, &new); in ext4_cross_rename()
3811 if (handle) in ext4_cross_rename()
3812 ext4_journal_stop(handle); in ext4_cross_rename()