Commit 6db75318 authored by Sweet Tea Dorminy's avatar Sweet Tea Dorminy Committed by David Sterba

btrfs: use struct fscrypt_str instead of struct qstr

While struct qstr is more natural without fscrypt, since it's provided
by dentries, struct fscrypt_str is provided by the fscrypt handlers
processing dentries, and is thus more natural in the fscrypt world.
Replace all of the struct qstr uses with struct fscrypt_str.
Signed-off-by: default avatarSweet Tea Dorminy <sweettea-kernel@dorminy.me>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent ab3c5c18
...@@ -1518,10 +1518,10 @@ int btrfs_drop_subtree(struct btrfs_trans_handle *trans, ...@@ -1518,10 +1518,10 @@ int btrfs_drop_subtree(struct btrfs_trans_handle *trans,
/* root-item.c */ /* root-item.c */
int btrfs_add_root_ref(struct btrfs_trans_handle *trans, u64 root_id, int btrfs_add_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
u64 ref_id, u64 dirid, u64 sequence, u64 ref_id, u64 dirid, u64 sequence,
const struct qstr *name); const struct fscrypt_str *name);
int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id, int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
u64 ref_id, u64 dirid, u64 *sequence, u64 ref_id, u64 dirid, u64 *sequence,
const struct qstr *name); const struct fscrypt_str *name);
int btrfs_del_root(struct btrfs_trans_handle *trans, int btrfs_del_root(struct btrfs_trans_handle *trans,
const struct btrfs_key *key); const struct btrfs_key *key);
int btrfs_insert_root(struct btrfs_trans_handle *trans, struct btrfs_root *root, int btrfs_insert_root(struct btrfs_trans_handle *trans, struct btrfs_root *root,
...@@ -1550,23 +1550,23 @@ int btrfs_uuid_tree_iterate(struct btrfs_fs_info *fs_info); ...@@ -1550,23 +1550,23 @@ int btrfs_uuid_tree_iterate(struct btrfs_fs_info *fs_info);
/* dir-item.c */ /* dir-item.c */
int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir, int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir,
const struct qstr *name); const struct fscrypt_str *name);
int btrfs_insert_dir_item(struct btrfs_trans_handle *trans, int btrfs_insert_dir_item(struct btrfs_trans_handle *trans,
const struct qstr *name, struct btrfs_inode *dir, const struct fscrypt_str *name, struct btrfs_inode *dir,
struct btrfs_key *location, u8 type, u64 index); struct btrfs_key *location, u8 type, u64 index);
struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans, struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_path *path, u64 dir, struct btrfs_path *path, u64 dir,
const struct qstr *name, int mod); const struct fscrypt_str *name, int mod);
struct btrfs_dir_item * struct btrfs_dir_item *
btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans, btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_path *path, u64 dir, struct btrfs_path *path, u64 dir,
u64 index, const struct qstr *name, int mod); u64 index, const struct fscrypt_str *name, int mod);
struct btrfs_dir_item * struct btrfs_dir_item *
btrfs_search_dir_index_item(struct btrfs_root *root, btrfs_search_dir_index_item(struct btrfs_root *root,
struct btrfs_path *path, u64 dirid, struct btrfs_path *path, u64 dirid,
const struct qstr *name); const struct fscrypt_str *name);
int btrfs_delete_one_dir_name(struct btrfs_trans_handle *trans, int btrfs_delete_one_dir_name(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_path *path, struct btrfs_path *path,
...@@ -1647,10 +1647,10 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry); ...@@ -1647,10 +1647,10 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry);
int btrfs_set_inode_index(struct btrfs_inode *dir, u64 *index); int btrfs_set_inode_index(struct btrfs_inode *dir, u64 *index);
int btrfs_unlink_inode(struct btrfs_trans_handle *trans, int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
struct btrfs_inode *dir, struct btrfs_inode *inode, struct btrfs_inode *dir, struct btrfs_inode *inode,
const struct qstr *name); const struct fscrypt_str *name);
int btrfs_add_link(struct btrfs_trans_handle *trans, int btrfs_add_link(struct btrfs_trans_handle *trans,
struct btrfs_inode *parent_inode, struct btrfs_inode *inode, struct btrfs_inode *parent_inode, struct btrfs_inode *inode,
const struct qstr *name, int add_backref, u64 index); const struct fscrypt_str *name, int add_backref, u64 index);
int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry); int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry);
int btrfs_truncate_block(struct btrfs_inode *inode, loff_t from, loff_t len, int btrfs_truncate_block(struct btrfs_inode *inode, loff_t from, loff_t len,
int front); int front);
...@@ -1676,7 +1676,6 @@ struct btrfs_new_inode_args { ...@@ -1676,7 +1676,6 @@ struct btrfs_new_inode_args {
struct posix_acl *default_acl; struct posix_acl *default_acl;
struct posix_acl *acl; struct posix_acl *acl;
struct fscrypt_name fname; struct fscrypt_name fname;
struct qstr name;
}; };
int btrfs_new_inode_prepare(struct btrfs_new_inode_args *args, int btrfs_new_inode_prepare(struct btrfs_new_inode_args *args,
unsigned int *trans_num_items); unsigned int *trans_num_items);
......
...@@ -106,7 +106,7 @@ int btrfs_insert_xattr_item(struct btrfs_trans_handle *trans, ...@@ -106,7 +106,7 @@ int btrfs_insert_xattr_item(struct btrfs_trans_handle *trans,
* Will return 0 or -ENOMEM * Will return 0 or -ENOMEM
*/ */
int btrfs_insert_dir_item(struct btrfs_trans_handle *trans, int btrfs_insert_dir_item(struct btrfs_trans_handle *trans,
const struct qstr *name, struct btrfs_inode *dir, const struct fscrypt_str *name, struct btrfs_inode *dir,
struct btrfs_key *location, u8 type, u64 index) struct btrfs_key *location, u8 type, u64 index)
{ {
int ret = 0; int ret = 0;
...@@ -208,7 +208,7 @@ static struct btrfs_dir_item *btrfs_lookup_match_dir( ...@@ -208,7 +208,7 @@ static struct btrfs_dir_item *btrfs_lookup_match_dir(
struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans, struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_path *path, u64 dir, struct btrfs_path *path, u64 dir,
const struct qstr *name, const struct fscrypt_str *name,
int mod) int mod)
{ {
struct btrfs_key key; struct btrfs_key key;
...@@ -227,7 +227,7 @@ struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans, ...@@ -227,7 +227,7 @@ struct btrfs_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans,
} }
int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir, int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir,
const struct qstr *name) const struct fscrypt_str *name)
{ {
int ret; int ret;
struct btrfs_key key; struct btrfs_key key;
...@@ -304,7 +304,7 @@ struct btrfs_dir_item * ...@@ -304,7 +304,7 @@ struct btrfs_dir_item *
btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans, btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_path *path, u64 dir, struct btrfs_path *path, u64 dir,
u64 index, const struct qstr *name, int mod) u64 index, const struct fscrypt_str *name, int mod)
{ {
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
struct btrfs_key key; struct btrfs_key key;
...@@ -323,7 +323,7 @@ btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans, ...@@ -323,7 +323,7 @@ btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans,
struct btrfs_dir_item * struct btrfs_dir_item *
btrfs_search_dir_index_item(struct btrfs_root *root, struct btrfs_path *path, btrfs_search_dir_index_item(struct btrfs_root *root, struct btrfs_path *path,
u64 dirid, const struct qstr *name) u64 dirid, const struct fscrypt_str *name)
{ {
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
struct btrfs_key key; struct btrfs_key key;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf, struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf,
int slot, int slot,
const struct qstr *name) const struct fscrypt_str *name)
{ {
struct btrfs_inode_ref *ref; struct btrfs_inode_ref *ref;
unsigned long ptr; unsigned long ptr;
...@@ -42,7 +42,7 @@ struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf, ...@@ -42,7 +42,7 @@ struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf,
struct btrfs_inode_extref *btrfs_find_name_in_ext_backref( struct btrfs_inode_extref *btrfs_find_name_in_ext_backref(
struct extent_buffer *leaf, int slot, u64 ref_objectid, struct extent_buffer *leaf, int slot, u64 ref_objectid,
const struct qstr *name) const struct fscrypt_str *name)
{ {
struct btrfs_inode_extref *extref; struct btrfs_inode_extref *extref;
unsigned long ptr; unsigned long ptr;
...@@ -81,7 +81,7 @@ struct btrfs_inode_extref * ...@@ -81,7 +81,7 @@ struct btrfs_inode_extref *
btrfs_lookup_inode_extref(struct btrfs_trans_handle *trans, btrfs_lookup_inode_extref(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_path *path, struct btrfs_path *path,
const struct qstr *name, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, int ins_len, u64 inode_objectid, u64 ref_objectid, int ins_len,
int cow) int cow)
{ {
...@@ -104,7 +104,7 @@ btrfs_lookup_inode_extref(struct btrfs_trans_handle *trans, ...@@ -104,7 +104,7 @@ btrfs_lookup_inode_extref(struct btrfs_trans_handle *trans,
static int btrfs_del_inode_extref(struct btrfs_trans_handle *trans, static int btrfs_del_inode_extref(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
const struct qstr *name, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, u64 inode_objectid, u64 ref_objectid,
u64 *index) u64 *index)
{ {
...@@ -174,7 +174,7 @@ static int btrfs_del_inode_extref(struct btrfs_trans_handle *trans, ...@@ -174,7 +174,7 @@ static int btrfs_del_inode_extref(struct btrfs_trans_handle *trans,
} }
int btrfs_del_inode_ref(struct btrfs_trans_handle *trans, int btrfs_del_inode_ref(struct btrfs_trans_handle *trans,
struct btrfs_root *root, const struct qstr *name, struct btrfs_root *root, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, u64 *index) u64 inode_objectid, u64 ref_objectid, u64 *index)
{ {
struct btrfs_path *path; struct btrfs_path *path;
...@@ -251,7 +251,7 @@ int btrfs_del_inode_ref(struct btrfs_trans_handle *trans, ...@@ -251,7 +251,7 @@ int btrfs_del_inode_ref(struct btrfs_trans_handle *trans,
*/ */
static int btrfs_insert_inode_extref(struct btrfs_trans_handle *trans, static int btrfs_insert_inode_extref(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
const struct qstr *name, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, u64 inode_objectid, u64 ref_objectid,
u64 index) u64 index)
{ {
...@@ -306,7 +306,7 @@ static int btrfs_insert_inode_extref(struct btrfs_trans_handle *trans, ...@@ -306,7 +306,7 @@ static int btrfs_insert_inode_extref(struct btrfs_trans_handle *trans,
/* Will return 0, -ENOMEM, -EMLINK, or -EEXIST or anything from the CoW path */ /* Will return 0, -ENOMEM, -EMLINK, or -EEXIST or anything from the CoW path */
int btrfs_insert_inode_ref(struct btrfs_trans_handle *trans, int btrfs_insert_inode_ref(struct btrfs_trans_handle *trans,
struct btrfs_root *root, const struct qstr *name, struct btrfs_root *root, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, u64 index) u64 inode_objectid, u64 ref_objectid, u64 index)
{ {
struct btrfs_fs_info *fs_info = root->fs_info; struct btrfs_fs_info *fs_info = root->fs_info;
......
...@@ -64,10 +64,10 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, ...@@ -64,10 +64,10 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_truncate_control *control); struct btrfs_truncate_control *control);
int btrfs_insert_inode_ref(struct btrfs_trans_handle *trans, int btrfs_insert_inode_ref(struct btrfs_trans_handle *trans,
struct btrfs_root *root, const struct qstr *name, struct btrfs_root *root, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, u64 index); u64 inode_objectid, u64 ref_objectid, u64 index);
int btrfs_del_inode_ref(struct btrfs_trans_handle *trans, int btrfs_del_inode_ref(struct btrfs_trans_handle *trans,
struct btrfs_root *root, const struct qstr *name, struct btrfs_root *root, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, u64 *index); u64 inode_objectid, u64 ref_objectid, u64 *index);
int btrfs_insert_empty_inode(struct btrfs_trans_handle *trans, int btrfs_insert_empty_inode(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
...@@ -80,15 +80,15 @@ struct btrfs_inode_extref *btrfs_lookup_inode_extref( ...@@ -80,15 +80,15 @@ struct btrfs_inode_extref *btrfs_lookup_inode_extref(
struct btrfs_trans_handle *trans, struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
struct btrfs_path *path, struct btrfs_path *path,
const struct qstr *name, const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, int ins_len, u64 inode_objectid, u64 ref_objectid, int ins_len,
int cow); int cow);
struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf, struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf,
int slot, int slot,
const struct qstr *name); const struct fscrypt_str *name);
struct btrfs_inode_extref *btrfs_find_name_in_ext_backref( struct btrfs_inode_extref *btrfs_find_name_in_ext_backref(
struct extent_buffer *leaf, int slot, u64 ref_objectid, struct extent_buffer *leaf, int slot, u64 ref_objectid,
const struct qstr *name); const struct fscrypt_str *name);
#endif #endif
This diff is collapsed.
...@@ -951,7 +951,7 @@ static noinline int btrfs_mksubvol(const struct path *parent, ...@@ -951,7 +951,7 @@ static noinline int btrfs_mksubvol(const struct path *parent,
struct inode *dir = d_inode(parent->dentry); struct inode *dir = d_inode(parent->dentry);
struct btrfs_fs_info *fs_info = btrfs_sb(dir->i_sb); struct btrfs_fs_info *fs_info = btrfs_sb(dir->i_sb);
struct dentry *dentry; struct dentry *dentry;
struct qstr name_str = QSTR_INIT(name, namelen); struct fscrypt_str name_str = FSTR_INIT((char *)name, namelen);
int error; int error;
error = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT); error = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT);
...@@ -3779,7 +3779,7 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp) ...@@ -3779,7 +3779,7 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp)
struct btrfs_trans_handle *trans; struct btrfs_trans_handle *trans;
struct btrfs_path *path = NULL; struct btrfs_path *path = NULL;
struct btrfs_disk_key disk_key; struct btrfs_disk_key disk_key;
struct qstr name = QSTR_INIT("default", 7); struct fscrypt_str name = FSTR_INIT("default", 7);
u64 objectid = 0; u64 objectid = 0;
u64 dir_id; u64 dir_id;
int ret; int ret;
......
...@@ -331,7 +331,7 @@ int btrfs_del_root(struct btrfs_trans_handle *trans, ...@@ -331,7 +331,7 @@ int btrfs_del_root(struct btrfs_trans_handle *trans,
int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id, int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
u64 ref_id, u64 dirid, u64 *sequence, u64 ref_id, u64 dirid, u64 *sequence,
const struct qstr *name) const struct fscrypt_str *name)
{ {
struct btrfs_root *tree_root = trans->fs_info->tree_root; struct btrfs_root *tree_root = trans->fs_info->tree_root;
struct btrfs_path *path; struct btrfs_path *path;
...@@ -403,7 +403,7 @@ int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id, ...@@ -403,7 +403,7 @@ int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
*/ */
int btrfs_add_root_ref(struct btrfs_trans_handle *trans, u64 root_id, int btrfs_add_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
u64 ref_id, u64 dirid, u64 sequence, u64 ref_id, u64 dirid, u64 sequence,
const struct qstr *name) const struct fscrypt_str *name)
{ {
struct btrfs_root *tree_root = trans->fs_info->tree_root; struct btrfs_root *tree_root = trans->fs_info->tree_root;
struct btrfs_key key; struct btrfs_key key;
......
...@@ -1597,7 +1597,7 @@ static int gen_unique_name(struct send_ctx *sctx, ...@@ -1597,7 +1597,7 @@ static int gen_unique_name(struct send_ctx *sctx,
return -ENOMEM; return -ENOMEM;
while (1) { while (1) {
struct qstr tmp_name; struct fscrypt_str tmp_name;
len = snprintf(tmp, sizeof(tmp), "o%llu-%llu-%llu", len = snprintf(tmp, sizeof(tmp), "o%llu-%llu-%llu",
ino, gen, idx); ino, gen, idx);
...@@ -1757,7 +1757,7 @@ static int lookup_dir_item_inode(struct btrfs_root *root, ...@@ -1757,7 +1757,7 @@ static int lookup_dir_item_inode(struct btrfs_root *root,
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
struct btrfs_key key; struct btrfs_key key;
struct btrfs_path *path; struct btrfs_path *path;
struct qstr name_str = QSTR_INIT(name, name_len); struct fscrypt_str name_str = FSTR_INIT((char *)name, name_len);
path = alloc_path_for_send(); path = alloc_path_for_send();
if (!path) if (!path)
......
...@@ -1423,7 +1423,7 @@ static int get_default_subvol_objectid(struct btrfs_fs_info *fs_info, u64 *objec ...@@ -1423,7 +1423,7 @@ static int get_default_subvol_objectid(struct btrfs_fs_info *fs_info, u64 *objec
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
struct btrfs_path *path; struct btrfs_path *path;
struct btrfs_key location; struct btrfs_key location;
struct qstr name = QSTR_INIT("default", 7); struct fscrypt_str name = FSTR_INIT("default", 7);
u64 dir_id; u64 dir_id;
path = btrfs_alloc_path(); path = btrfs_alloc_path();
......
...@@ -1625,7 +1625,6 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, ...@@ -1625,7 +1625,6 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
u64 root_flags; u64 root_flags;
unsigned int nofs_flags; unsigned int nofs_flags;
struct fscrypt_name fname; struct fscrypt_name fname;
struct qstr name;
ASSERT(pending->path); ASSERT(pending->path);
path = pending->path; path = pending->path;
...@@ -1645,7 +1644,6 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, ...@@ -1645,7 +1644,6 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
memalloc_nofs_restore(nofs_flags); memalloc_nofs_restore(nofs_flags);
if (pending->error) if (pending->error)
goto free_pending; goto free_pending;
name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
pending->error = btrfs_get_free_objectid(tree_root, &objectid); pending->error = btrfs_get_free_objectid(tree_root, &objectid);
if (pending->error) if (pending->error)
...@@ -1693,7 +1691,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, ...@@ -1693,7 +1691,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
/* check if there is a file/dir which has the same name. */ /* check if there is a file/dir which has the same name. */
dir_item = btrfs_lookup_dir_item(NULL, parent_root, path, dir_item = btrfs_lookup_dir_item(NULL, parent_root, path,
btrfs_ino(BTRFS_I(parent_inode)), btrfs_ino(BTRFS_I(parent_inode)),
&name, 0); &fname.disk_name, 0);
if (dir_item != NULL && !IS_ERR(dir_item)) { if (dir_item != NULL && !IS_ERR(dir_item)) {
pending->error = -EEXIST; pending->error = -EEXIST;
goto dir_item_existed; goto dir_item_existed;
...@@ -1788,7 +1786,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, ...@@ -1788,7 +1786,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
ret = btrfs_add_root_ref(trans, objectid, ret = btrfs_add_root_ref(trans, objectid,
parent_root->root_key.objectid, parent_root->root_key.objectid,
btrfs_ino(BTRFS_I(parent_inode)), index, btrfs_ino(BTRFS_I(parent_inode)), index,
&name); &fname.disk_name);
if (ret) { if (ret) {
btrfs_abort_transaction(trans, ret); btrfs_abort_transaction(trans, ret);
goto fail; goto fail;
...@@ -1820,8 +1818,9 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, ...@@ -1820,8 +1818,9 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
if (ret < 0) if (ret < 0)
goto fail; goto fail;
ret = btrfs_insert_dir_item(trans, &name, BTRFS_I(parent_inode), &key, ret = btrfs_insert_dir_item(trans, &fname.disk_name,
BTRFS_FT_DIR, index); BTRFS_I(parent_inode), &key, BTRFS_FT_DIR,
index);
/* We have check then name at the beginning, so it is impossible. */ /* We have check then name at the beginning, so it is impossible. */
BUG_ON(ret == -EEXIST || ret == -EOVERFLOW); BUG_ON(ret == -EEXIST || ret == -EOVERFLOW);
if (ret) { if (ret) {
...@@ -1830,7 +1829,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, ...@@ -1830,7 +1829,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
} }
btrfs_i_size_write(BTRFS_I(parent_inode), parent_inode->i_size + btrfs_i_size_write(BTRFS_I(parent_inode), parent_inode->i_size +
name.len * 2); fname.disk_name.len * 2);
parent_inode->i_mtime = current_time(parent_inode); parent_inode->i_mtime = current_time(parent_inode);
parent_inode->i_ctime = parent_inode->i_mtime; parent_inode->i_ctime = parent_inode->i_mtime;
ret = btrfs_update_inode_fallback(trans, parent_root, BTRFS_I(parent_inode)); ret = btrfs_update_inode_fallback(trans, parent_root, BTRFS_I(parent_inode));
......
...@@ -598,7 +598,7 @@ static int overwrite_item(struct btrfs_trans_handle *trans, ...@@ -598,7 +598,7 @@ static int overwrite_item(struct btrfs_trans_handle *trans,
} }
static int read_alloc_one_name(struct extent_buffer *eb, void *start, int len, static int read_alloc_one_name(struct extent_buffer *eb, void *start, int len,
struct qstr *name) struct fscrypt_str *name)
{ {
char *buf; char *buf;
...@@ -917,7 +917,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans, ...@@ -917,7 +917,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans,
static int unlink_inode_for_log_replay(struct btrfs_trans_handle *trans, static int unlink_inode_for_log_replay(struct btrfs_trans_handle *trans,
struct btrfs_inode *dir, struct btrfs_inode *dir,
struct btrfs_inode *inode, struct btrfs_inode *inode,
const struct qstr *name) const struct fscrypt_str *name)
{ {
int ret; int ret;
...@@ -948,7 +948,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans, ...@@ -948,7 +948,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
{ {
struct btrfs_root *root = dir->root; struct btrfs_root *root = dir->root;
struct inode *inode; struct inode *inode;
struct qstr name; struct fscrypt_str name;
struct extent_buffer *leaf; struct extent_buffer *leaf;
struct btrfs_key location; struct btrfs_key location;
int ret; int ret;
...@@ -989,7 +989,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans, ...@@ -989,7 +989,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
static noinline int inode_in_dir(struct btrfs_root *root, static noinline int inode_in_dir(struct btrfs_root *root,
struct btrfs_path *path, struct btrfs_path *path,
u64 dirid, u64 objectid, u64 index, u64 dirid, u64 objectid, u64 index,
struct qstr *name) struct fscrypt_str *name)
{ {
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
struct btrfs_key location; struct btrfs_key location;
...@@ -1036,7 +1036,7 @@ static noinline int inode_in_dir(struct btrfs_root *root, ...@@ -1036,7 +1036,7 @@ static noinline int inode_in_dir(struct btrfs_root *root,
static noinline int backref_in_log(struct btrfs_root *log, static noinline int backref_in_log(struct btrfs_root *log,
struct btrfs_key *key, struct btrfs_key *key,
u64 ref_objectid, u64 ref_objectid,
const struct qstr *name) const struct fscrypt_str *name)
{ {
struct btrfs_path *path; struct btrfs_path *path;
int ret; int ret;
...@@ -1072,7 +1072,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1072,7 +1072,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
struct btrfs_inode *dir, struct btrfs_inode *dir,
struct btrfs_inode *inode, struct btrfs_inode *inode,
u64 inode_objectid, u64 parent_objectid, u64 inode_objectid, u64 parent_objectid,
u64 ref_index, struct qstr *name) u64 ref_index, struct fscrypt_str *name)
{ {
int ret; int ret;
struct extent_buffer *leaf; struct extent_buffer *leaf;
...@@ -1106,7 +1106,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1106,7 +1106,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); ptr = btrfs_item_ptr_offset(leaf, path->slots[0]);
ptr_end = ptr + btrfs_item_size(leaf, path->slots[0]); ptr_end = ptr + btrfs_item_size(leaf, path->slots[0]);
while (ptr < ptr_end) { while (ptr < ptr_end) {
struct qstr victim_name; struct fscrypt_str victim_name;
victim_ref = (struct btrfs_inode_ref *)ptr; victim_ref = (struct btrfs_inode_ref *)ptr;
ret = read_alloc_one_name(leaf, (victim_ref + 1), ret = read_alloc_one_name(leaf, (victim_ref + 1),
...@@ -1156,7 +1156,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1156,7 +1156,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
base = btrfs_item_ptr_offset(leaf, path->slots[0]); base = btrfs_item_ptr_offset(leaf, path->slots[0]);
while (cur_offset < item_size) { while (cur_offset < item_size) {
struct qstr victim_name; struct fscrypt_str victim_name;
extref = (struct btrfs_inode_extref *)(base + cur_offset); extref = (struct btrfs_inode_extref *)(base + cur_offset);
...@@ -1231,7 +1231,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1231,7 +1231,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
} }
static int extref_get_fields(struct extent_buffer *eb, unsigned long ref_ptr, static int extref_get_fields(struct extent_buffer *eb, unsigned long ref_ptr,
struct qstr *name, u64 *index, struct fscrypt_str *name, u64 *index,
u64 *parent_objectid) u64 *parent_objectid)
{ {
struct btrfs_inode_extref *extref; struct btrfs_inode_extref *extref;
...@@ -1253,7 +1253,7 @@ static int extref_get_fields(struct extent_buffer *eb, unsigned long ref_ptr, ...@@ -1253,7 +1253,7 @@ static int extref_get_fields(struct extent_buffer *eb, unsigned long ref_ptr,
} }
static int ref_get_fields(struct extent_buffer *eb, unsigned long ref_ptr, static int ref_get_fields(struct extent_buffer *eb, unsigned long ref_ptr,
struct qstr *name, u64 *index) struct fscrypt_str *name, u64 *index)
{ {
struct btrfs_inode_ref *ref; struct btrfs_inode_ref *ref;
int ret; int ret;
...@@ -1305,7 +1305,7 @@ static int unlink_old_inode_refs(struct btrfs_trans_handle *trans, ...@@ -1305,7 +1305,7 @@ static int unlink_old_inode_refs(struct btrfs_trans_handle *trans,
ref_ptr = btrfs_item_ptr_offset(eb, path->slots[0]); ref_ptr = btrfs_item_ptr_offset(eb, path->slots[0]);
ref_end = ref_ptr + btrfs_item_size(eb, path->slots[0]); ref_end = ref_ptr + btrfs_item_size(eb, path->slots[0]);
while (ref_ptr < ref_end) { while (ref_ptr < ref_end) {
struct qstr name; struct fscrypt_str name;
u64 parent_id; u64 parent_id;
if (key->type == BTRFS_INODE_EXTREF_KEY) { if (key->type == BTRFS_INODE_EXTREF_KEY) {
...@@ -1373,7 +1373,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans, ...@@ -1373,7 +1373,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
struct inode *inode = NULL; struct inode *inode = NULL;
unsigned long ref_ptr; unsigned long ref_ptr;
unsigned long ref_end; unsigned long ref_end;
struct qstr name; struct fscrypt_str name;
int ret; int ret;
int log_ref_ver = 0; int log_ref_ver = 0;
u64 parent_objectid; u64 parent_objectid;
...@@ -1767,7 +1767,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans, ...@@ -1767,7 +1767,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans,
static noinline int insert_one_name(struct btrfs_trans_handle *trans, static noinline int insert_one_name(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
u64 dirid, u64 index, u64 dirid, u64 index,
const struct qstr *name, const struct fscrypt_str *name,
struct btrfs_key *location) struct btrfs_key *location)
{ {
struct inode *inode; struct inode *inode;
...@@ -1845,7 +1845,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans, ...@@ -1845,7 +1845,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans,
struct btrfs_dir_item *di, struct btrfs_dir_item *di,
struct btrfs_key *key) struct btrfs_key *key)
{ {
struct qstr name; struct fscrypt_str name;
struct btrfs_dir_item *dir_dst_di; struct btrfs_dir_item *dir_dst_di;
struct btrfs_dir_item *index_dst_di; struct btrfs_dir_item *index_dst_di;
bool dir_dst_matches = false; bool dir_dst_matches = false;
...@@ -2125,7 +2125,7 @@ static noinline int check_item_in_log(struct btrfs_trans_handle *trans, ...@@ -2125,7 +2125,7 @@ static noinline int check_item_in_log(struct btrfs_trans_handle *trans,
struct extent_buffer *eb; struct extent_buffer *eb;
int slot; int slot;
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
struct qstr name; struct fscrypt_str name;
struct inode *inode = NULL; struct inode *inode = NULL;
struct btrfs_key location; struct btrfs_key location;
...@@ -3423,7 +3423,7 @@ static int del_logged_dentry(struct btrfs_trans_handle *trans, ...@@ -3423,7 +3423,7 @@ static int del_logged_dentry(struct btrfs_trans_handle *trans,
struct btrfs_root *log, struct btrfs_root *log,
struct btrfs_path *path, struct btrfs_path *path,
u64 dir_ino, u64 dir_ino,
const struct qstr *name, const struct fscrypt_str *name,
u64 index) u64 index)
{ {
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
...@@ -3470,7 +3470,7 @@ static int del_logged_dentry(struct btrfs_trans_handle *trans, ...@@ -3470,7 +3470,7 @@ static int del_logged_dentry(struct btrfs_trans_handle *trans,
*/ */
void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans, void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
const struct qstr *name, const struct fscrypt_str *name,
struct btrfs_inode *dir, u64 index) struct btrfs_inode *dir, u64 index)
{ {
struct btrfs_path *path; struct btrfs_path *path;
...@@ -3509,7 +3509,7 @@ void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans, ...@@ -3509,7 +3509,7 @@ void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans,
/* see comments for btrfs_del_dir_entries_in_log */ /* see comments for btrfs_del_dir_entries_in_log */
void btrfs_del_inode_ref_in_log(struct btrfs_trans_handle *trans, void btrfs_del_inode_ref_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
const struct qstr *name, const struct fscrypt_str *name,
struct btrfs_inode *inode, u64 dirid) struct btrfs_inode *inode, u64 dirid)
{ {
struct btrfs_root *log; struct btrfs_root *log;
...@@ -5244,7 +5244,7 @@ static int btrfs_check_ref_name_override(struct extent_buffer *eb, ...@@ -5244,7 +5244,7 @@ static int btrfs_check_ref_name_override(struct extent_buffer *eb,
u32 this_len; u32 this_len;
unsigned long name_ptr; unsigned long name_ptr;
struct btrfs_dir_item *di; struct btrfs_dir_item *di;
struct qstr name_str; struct fscrypt_str name_str;
if (key->type == BTRFS_INODE_REF_KEY) { if (key->type == BTRFS_INODE_REF_KEY) {
struct btrfs_inode_ref *iref; struct btrfs_inode_ref *iref;
...@@ -7447,7 +7447,6 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans, ...@@ -7447,7 +7447,6 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,
struct btrfs_root *log = old_dir->root->log_root; struct btrfs_root *log = old_dir->root->log_root;
struct btrfs_path *path; struct btrfs_path *path;
struct fscrypt_name fname; struct fscrypt_name fname;
struct qstr name;
ASSERT(old_dir_index >= BTRFS_DIR_START_INDEX); ASSERT(old_dir_index >= BTRFS_DIR_START_INDEX);
...@@ -7455,7 +7454,6 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans, ...@@ -7455,7 +7454,6 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,
&old_dentry->d_name, 0, &fname); &old_dentry->d_name, 0, &fname);
if (ret) if (ret)
goto out; goto out;
name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
/* /*
* We have two inodes to update in the log, the old directory and * We have two inodes to update in the log, the old directory and
* the inode that got renamed, so we must pin the log to prevent * the inode that got renamed, so we must pin the log to prevent
...@@ -7491,7 +7489,7 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans, ...@@ -7491,7 +7489,7 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,
*/ */
mutex_lock(&old_dir->log_mutex); mutex_lock(&old_dir->log_mutex);
ret = del_logged_dentry(trans, log, path, btrfs_ino(old_dir), ret = del_logged_dentry(trans, log, path, btrfs_ino(old_dir),
&name, old_dir_index); &fname.disk_name, old_dir_index);
if (ret > 0) { if (ret > 0) {
/* /*
* The dentry does not exist in the log, so record its * The dentry does not exist in the log, so record its
......
...@@ -87,11 +87,11 @@ int btrfs_log_dentry_safe(struct btrfs_trans_handle *trans, ...@@ -87,11 +87,11 @@ int btrfs_log_dentry_safe(struct btrfs_trans_handle *trans,
struct btrfs_log_ctx *ctx); struct btrfs_log_ctx *ctx);
void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans, void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
const struct qstr *name, const struct fscrypt_str *name,
struct btrfs_inode *dir, u64 index); struct btrfs_inode *dir, u64 index);
void btrfs_del_inode_ref_in_log(struct btrfs_trans_handle *trans, void btrfs_del_inode_ref_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_root *root,
const struct qstr *name, const struct fscrypt_str *name,
struct btrfs_inode *inode, u64 dirid); struct btrfs_inode *inode, u64 dirid);
void btrfs_end_log_trans(struct btrfs_root *root); void btrfs_end_log_trans(struct btrfs_root *root);
void btrfs_pin_log_trans(struct btrfs_root *root); void btrfs_pin_log_trans(struct btrfs_root *root);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment