Lines Matching refs:dir
965 void ext4_show_inline_dir(struct inode *dir, struct buffer_head *bh, in ext4_show_inline_dir() argument
973 trace_printk("inode %lu\n", dir->i_ino); in ext4_show_inline_dir()
980 if (ext4_check_dir_entry(dir, NULL, de, bh, in ext4_show_inline_dir()
989 #define ext4_show_inline_dir(dir, bh, inline_start, inline_size) argument
1003 struct inode *dir = d_inode(dentry->d_parent); in ext4_add_dirent_to_inline() local
1009 err = ext4_find_dest_de(dir, inode, iloc->bh, in ext4_add_dirent_to_inline()
1019 ext4_insert_dentry(dir, inode, de, inline_size, &dentry->d_name, in ext4_add_dirent_to_inline()
1022 ext4_show_inline_dir(dir, iloc->bh, inline_start, inline_size); in ext4_add_dirent_to_inline()
1035 dir->i_mtime = dir->i_ctime = ext4_current_time(dir); in ext4_add_dirent_to_inline()
1036 ext4_update_dx_flag(dir); in ext4_add_dirent_to_inline()
1037 dir->i_version++; in ext4_add_dirent_to_inline()
1038 ext4_mark_inode_dirty(handle, dir); in ext4_add_dirent_to_inline()
1083 static int ext4_update_inline_dir(handle_t *handle, struct inode *dir, in ext4_update_inline_dir() argument
1087 int old_size = EXT4_I(dir)->i_inline_size - EXT4_MIN_INLINE_DATA_SIZE; in ext4_update_inline_dir()
1088 int new_size = get_max_inline_xattr_value_size(dir, iloc); in ext4_update_inline_dir()
1093 ret = ext4_update_inline_data(handle, dir, in ext4_update_inline_dir()
1098 ext4_update_final_de(ext4_get_inline_xattr_pos(dir, iloc), old_size, in ext4_update_inline_dir()
1099 EXT4_I(dir)->i_inline_size - in ext4_update_inline_dir()
1101 dir->i_size = EXT4_I(dir)->i_disksize = EXT4_I(dir)->i_inline_size; in ext4_update_inline_dir()
1257 struct inode *dir = d_inode(dentry->d_parent); in ext4_try_add_inline_entry() local
1259 ret = ext4_get_inode_loc(dir, &iloc); in ext4_try_add_inline_entry()
1263 down_write(&EXT4_I(dir)->xattr_sem); in ext4_try_add_inline_entry()
1264 if (!ext4_has_inline_data(dir)) in ext4_try_add_inline_entry()
1277 inline_size = EXT4_I(dir)->i_inline_size - in ext4_try_add_inline_entry()
1281 ret = ext4_update_inline_dir(handle, dir, &iloc); in ext4_try_add_inline_entry()
1285 inline_size = EXT4_I(dir)->i_inline_size - in ext4_try_add_inline_entry()
1290 inline_start = ext4_get_inline_xattr_pos(dir, &iloc); in ext4_try_add_inline_entry()
1304 ret = ext4_convert_inline_data_nolock(handle, dir, &iloc); in ext4_try_add_inline_entry()
1307 ext4_mark_inode_dirty(handle, dir); in ext4_try_add_inline_entry()
1308 up_write(&EXT4_I(dir)->xattr_sem); in ext4_try_add_inline_entry()
1319 struct inode *dir, ext4_lblk_t block, in htree_inlinedir_to_tree() argument
1613 struct buffer_head *ext4_find_inline_entry(struct inode *dir, in ext4_find_inline_entry() argument
1623 if (ext4_get_inode_loc(dir, &iloc)) in ext4_find_inline_entry()
1626 down_read(&EXT4_I(dir)->xattr_sem); in ext4_find_inline_entry()
1627 if (!ext4_has_inline_data(dir)) { in ext4_find_inline_entry()
1636 dir, d_name, 0, res_dir); in ext4_find_inline_entry()
1642 if (ext4_get_inline_size(dir) == EXT4_MIN_INLINE_DATA_SIZE) in ext4_find_inline_entry()
1645 inline_start = ext4_get_inline_xattr_pos(dir, &iloc); in ext4_find_inline_entry()
1646 inline_size = ext4_get_inline_size(dir) - EXT4_MIN_INLINE_DATA_SIZE; in ext4_find_inline_entry()
1649 dir, d_name, 0, res_dir); in ext4_find_inline_entry()
1657 up_read(&EXT4_I(dir)->xattr_sem); in ext4_find_inline_entry()
1662 struct inode *dir, in ext4_delete_inline_entry() argument
1671 err = ext4_get_inode_loc(dir, &iloc); in ext4_delete_inline_entry()
1675 down_write(&EXT4_I(dir)->xattr_sem); in ext4_delete_inline_entry()
1676 if (!ext4_has_inline_data(dir)) { in ext4_delete_inline_entry()
1688 inline_start = ext4_get_inline_xattr_pos(dir, &iloc); in ext4_delete_inline_entry()
1689 inline_size = ext4_get_inline_size(dir) - in ext4_delete_inline_entry()
1698 err = ext4_generic_delete_entry(handle, dir, de_del, bh, in ext4_delete_inline_entry()
1704 err = ext4_mark_inode_dirty(handle, dir); in ext4_delete_inline_entry()
1708 ext4_show_inline_dir(dir, iloc.bh, inline_start, inline_size); in ext4_delete_inline_entry()
1710 up_write(&EXT4_I(dir)->xattr_sem); in ext4_delete_inline_entry()
1713 ext4_std_error(dir->i_sb, err); in ext4_delete_inline_entry()
1746 int empty_inline_dir(struct inode *dir, int *has_inline_data) in empty_inline_dir() argument
1755 err = ext4_get_inode_loc(dir, &iloc); in empty_inline_dir()
1757 EXT4_ERROR_INODE(dir, "error %d getting inode %lu block", in empty_inline_dir()
1758 err, dir->i_ino); in empty_inline_dir()
1762 down_read(&EXT4_I(dir)->xattr_sem); in empty_inline_dir()
1763 if (!ext4_has_inline_data(dir)) { in empty_inline_dir()
1770 ext4_warning(dir->i_sb, in empty_inline_dir()
1772 dir->i_ino); in empty_inline_dir()
1778 while (offset < dir->i_size) { in empty_inline_dir()
1779 de = ext4_get_inline_entry(dir, &iloc, offset, in empty_inline_dir()
1781 if (ext4_check_dir_entry(dir, NULL, de, in empty_inline_dir()
1784 ext4_warning(dir->i_sb, in empty_inline_dir()
1788 dir->i_ino, le32_to_cpu(de->inode), in empty_inline_dir()
1802 up_read(&EXT4_I(dir)->xattr_sem); in empty_inline_dir()