From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Sweet Tea Dorminy <sweettea-kernel@dorminy.me>,
David Sterba <dsterba@suse.com>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 036/162] btrfs: use struct fscrypt_str instead of struct qstr
Date: Mon, 9 Oct 2023 15:00:17 +0200 [thread overview]
Message-ID: <20231009130123.939757453@linuxfoundation.org> (raw)
In-Reply-To: <20231009130122.946357448@linuxfoundation.org>
6.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
[ Upstream commit 6db75318823a169e836a478ca57d6a7c0a156b77 ]
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: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Stable-dep-of: 9af86694fd5d ("btrfs: file_remove_privs needs an exclusive lock in direct io write")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/btrfs/ctree.h | 19 +++++----
fs/btrfs/dir-item.c | 10 ++---
fs/btrfs/inode-item.c | 14 +++----
fs/btrfs/inode-item.h | 10 ++---
fs/btrfs/inode.c | 87 +++++++++++++++++-------------------------
fs/btrfs/ioctl.c | 4 +-
fs/btrfs/root-tree.c | 4 +-
fs/btrfs/send.c | 4 +-
fs/btrfs/super.c | 2 +-
fs/btrfs/transaction.c | 13 +++----
fs/btrfs/tree-log.c | 42 ++++++++++----------
fs/btrfs/tree-log.h | 4 +-
12 files changed, 95 insertions(+), 118 deletions(-)
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 5120cea15b096..27d06bb5e5c05 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -3240,10 +3240,10 @@ static inline void btrfs_clear_sb_rdonly(struct super_block *sb)
/* root-item.c */
int btrfs_add_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
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,
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,
const struct btrfs_key *key);
int btrfs_insert_root(struct btrfs_trans_handle *trans, struct btrfs_root *root,
@@ -3272,23 +3272,23 @@ int btrfs_uuid_tree_iterate(struct btrfs_fs_info *fs_info);
/* dir-item.c */
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,
- 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_dir_item *btrfs_lookup_dir_item(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
struct btrfs_path *path, u64 dir,
- const struct qstr *name, int mod);
+ const struct fscrypt_str *name, int mod);
struct btrfs_dir_item *
btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
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 *
btrfs_search_dir_index_item(struct btrfs_root *root,
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,
struct btrfs_root *root,
struct btrfs_path *path,
@@ -3369,10 +3369,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_unlink_inode(struct btrfs_trans_handle *trans,
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,
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_truncate_block(struct btrfs_inode *inode, loff_t from, loff_t len,
int front);
@@ -3398,7 +3398,6 @@ struct btrfs_new_inode_args {
struct posix_acl *default_acl;
struct posix_acl *acl;
struct fscrypt_name fname;
- struct qstr name;
};
int btrfs_new_inode_prepare(struct btrfs_new_inode_args *args,
unsigned int *trans_num_items);
diff --git a/fs/btrfs/dir-item.c b/fs/btrfs/dir-item.c
index 8c60f37eb13fd..fdab48c1abb8a 100644
--- a/fs/btrfs/dir-item.c
+++ b/fs/btrfs/dir-item.c
@@ -104,7 +104,7 @@ int btrfs_insert_xattr_item(struct btrfs_trans_handle *trans,
* Will return 0 or -ENOMEM
*/
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)
{
int ret = 0;
@@ -206,7 +206,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_root *root,
struct btrfs_path *path, u64 dir,
- const struct qstr *name,
+ const struct fscrypt_str *name,
int mod)
{
struct btrfs_key key;
@@ -225,7 +225,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,
- const struct qstr *name)
+ const struct fscrypt_str *name)
{
int ret;
struct btrfs_key key;
@@ -302,7 +302,7 @@ struct btrfs_dir_item *
btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
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_key key;
@@ -321,7 +321,7 @@ btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans,
struct btrfs_dir_item *
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_key key;
diff --git a/fs/btrfs/inode-item.c b/fs/btrfs/inode-item.c
index 61b323517a40b..5add022d3534f 100644
--- a/fs/btrfs/inode-item.c
+++ b/fs/btrfs/inode-item.c
@@ -11,7 +11,7 @@
struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf,
int slot,
- const struct qstr *name)
+ const struct fscrypt_str *name)
{
struct btrfs_inode_ref *ref;
unsigned long ptr;
@@ -38,7 +38,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 extent_buffer *leaf, int slot, u64 ref_objectid,
- const struct qstr *name)
+ const struct fscrypt_str *name)
{
struct btrfs_inode_extref *extref;
unsigned long ptr;
@@ -77,7 +77,7 @@ struct btrfs_inode_extref *
btrfs_lookup_inode_extref(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
struct btrfs_path *path,
- const struct qstr *name,
+ const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, int ins_len,
int cow)
{
@@ -100,7 +100,7 @@ btrfs_lookup_inode_extref(struct btrfs_trans_handle *trans,
static int btrfs_del_inode_extref(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- const struct qstr *name,
+ const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid,
u64 *index)
{
@@ -170,7 +170,7 @@ static int btrfs_del_inode_extref(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)
{
struct btrfs_path *path;
@@ -247,7 +247,7 @@ int btrfs_del_inode_ref(struct btrfs_trans_handle *trans,
*/
static int btrfs_insert_inode_extref(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- const struct qstr *name,
+ const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid,
u64 index)
{
@@ -302,7 +302,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 */
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)
{
struct btrfs_fs_info *fs_info = root->fs_info;
diff --git a/fs/btrfs/inode-item.h b/fs/btrfs/inode-item.h
index 3c657c670cfdf..b80aeb7157010 100644
--- a/fs/btrfs/inode-item.h
+++ b/fs/btrfs/inode-item.h
@@ -64,10 +64,10 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
struct btrfs_truncate_control *control);
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);
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);
int btrfs_insert_empty_inode(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
@@ -80,15 +80,15 @@ struct btrfs_inode_extref *btrfs_lookup_inode_extref(
struct btrfs_trans_handle *trans,
struct btrfs_root *root,
struct btrfs_path *path,
- const struct qstr *name,
+ const struct fscrypt_str *name,
u64 inode_objectid, u64 ref_objectid, int ins_len,
int cow);
struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf,
int slot,
- const struct qstr *name);
+ const struct fscrypt_str *name);
struct btrfs_inode_extref *btrfs_find_name_in_ext_backref(
struct extent_buffer *leaf, int slot, u64 ref_objectid,
- const struct qstr *name);
+ const struct fscrypt_str *name);
#endif
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index b5224dbaa4165..47c5be597368b 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4272,7 +4272,7 @@ int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
struct btrfs_inode *dir,
struct btrfs_inode *inode,
- const struct qstr *name,
+ const struct fscrypt_str *name,
struct btrfs_rename_ctx *rename_ctx)
{
struct btrfs_root *root = dir->root;
@@ -4375,7 +4375,7 @@ static 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,
- const struct qstr *name)
+ const struct fscrypt_str *name)
{
int ret;
@@ -4416,12 +4416,10 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
struct inode *inode = d_inode(dentry);
int ret;
struct fscrypt_name fname;
- struct qstr name;
ret = fscrypt_setup_filename(dir, &dentry->d_name, 1, &fname);
if (ret)
return ret;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
/* This needs to handle no-key deletions later on */
@@ -4435,7 +4433,7 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
0);
ret = btrfs_unlink_inode(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)),
- &name);
+ &fname.disk_name);
if (ret)
goto end_trans;
@@ -4462,7 +4460,6 @@ static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
struct extent_buffer *leaf;
struct btrfs_dir_item *di;
struct btrfs_key key;
- struct qstr name;
u64 index;
int ret;
u64 objectid;
@@ -4472,7 +4469,6 @@ static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
ret = fscrypt_setup_filename(dir, &dentry->d_name, 1, &fname);
if (ret)
return ret;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
/* This needs to handle no-key deletions later on */
@@ -4492,7 +4488,8 @@ static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
goto out;
}
- di = btrfs_lookup_dir_item(trans, root, path, dir_ino, &name, -1);
+ di = btrfs_lookup_dir_item(trans, root, path, dir_ino,
+ &fname.disk_name, -1);
if (IS_ERR_OR_NULL(di)) {
ret = di ? PTR_ERR(di) : -ENOENT;
goto out;
@@ -4518,7 +4515,7 @@ static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
* call btrfs_del_root_ref, and it _shouldn't_ fail.
*/
if (btrfs_ino(inode) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID) {
- di = btrfs_search_dir_index_item(root, path, dir_ino, &name);
+ di = btrfs_search_dir_index_item(root, path, dir_ino, &fname.disk_name);
if (IS_ERR_OR_NULL(di)) {
if (!di)
ret = -ENOENT;
@@ -4535,7 +4532,7 @@ static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
} else {
ret = btrfs_del_root_ref(trans, objectid,
root->root_key.objectid, dir_ino,
- &index, &name);
+ &index, &fname.disk_name);
if (ret) {
btrfs_abort_transaction(trans, ret);
goto out;
@@ -4548,7 +4545,7 @@ static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
goto out;
}
- btrfs_i_size_write(BTRFS_I(dir), dir->i_size - name.len * 2);
+ btrfs_i_size_write(BTRFS_I(dir), dir->i_size - fname.disk_name.len * 2);
inode_inc_iversion(dir);
dir->i_mtime = current_time(dir);
dir->i_ctime = dir->i_mtime;
@@ -4571,7 +4568,7 @@ static noinline int may_destroy_subvol(struct btrfs_root *root)
struct btrfs_path *path;
struct btrfs_dir_item *di;
struct btrfs_key key;
- struct qstr name = QSTR_INIT("default", 7);
+ struct fscrypt_str name = FSTR_INIT("default", 7);
u64 dir_id;
int ret;
@@ -4822,7 +4819,6 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
struct btrfs_trans_handle *trans;
u64 last_unlink_trans;
struct fscrypt_name fname;
- struct qstr name;
if (inode->i_size > BTRFS_EMPTY_DIR_SIZE)
return -ENOTEMPTY;
@@ -4838,7 +4834,6 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
err = fscrypt_setup_filename(dir, &dentry->d_name, 1, &fname);
if (err)
return err;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
/* This needs to handle no-key deletions later on */
@@ -4861,7 +4856,7 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
/* now the directory is empty */
err = btrfs_unlink_inode(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)),
- &name);
+ &fname.disk_name);
if (!err) {
btrfs_i_size_write(BTRFS_I(inode), 0);
/*
@@ -5563,7 +5558,6 @@ void btrfs_evict_inode(struct inode *inode)
static int btrfs_inode_by_name(struct inode *dir, struct dentry *dentry,
struct btrfs_key *location, u8 *type)
{
- struct qstr name;
struct btrfs_dir_item *di;
struct btrfs_path *path;
struct btrfs_root *root = BTRFS_I(dir)->root;
@@ -5578,12 +5572,10 @@ static int btrfs_inode_by_name(struct inode *dir, struct dentry *dentry,
if (ret)
goto out;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
-
/* This needs to handle no-key deletions later on */
di = btrfs_lookup_dir_item(NULL, root, path, btrfs_ino(BTRFS_I(dir)),
- &name, 0);
+ &fname.disk_name, 0);
if (IS_ERR_OR_NULL(di)) {
ret = di ? PTR_ERR(di) : -ENOENT;
goto out;
@@ -5595,7 +5587,7 @@ static int btrfs_inode_by_name(struct inode *dir, struct dentry *dentry,
ret = -EUCLEAN;
btrfs_warn(root->fs_info,
"%s gets something invalid in DIR_ITEM (name %s, directory ino %llu, location(%llu %u %llu))",
- __func__, name.name, btrfs_ino(BTRFS_I(dir)),
+ __func__, fname.disk_name.name, btrfs_ino(BTRFS_I(dir)),
location->objectid, location->type, location->offset);
}
if (!ret)
@@ -5625,14 +5617,11 @@ static int fixup_tree_root_location(struct btrfs_fs_info *fs_info,
int ret;
int err = 0;
struct fscrypt_name fname;
- struct qstr name;
ret = fscrypt_setup_filename(dir, &dentry->d_name, 0, &fname);
if (ret)
return ret;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
-
path = btrfs_alloc_path();
if (!path) {
err = -ENOMEM;
@@ -5654,11 +5643,11 @@ static int fixup_tree_root_location(struct btrfs_fs_info *fs_info,
leaf = path->nodes[0];
ref = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_root_ref);
if (btrfs_root_ref_dirid(leaf, ref) != btrfs_ino(BTRFS_I(dir)) ||
- btrfs_root_ref_name_len(leaf, ref) != name.len)
+ btrfs_root_ref_name_len(leaf, ref) != fname.disk_name.len)
goto out;
- ret = memcmp_extent_buffer(leaf, name.name, (unsigned long)(ref + 1),
- name.len);
+ ret = memcmp_extent_buffer(leaf, fname.disk_name.name,
+ (unsigned long)(ref + 1), fname.disk_name.len);
if (ret)
goto out;
@@ -6291,7 +6280,6 @@ int btrfs_new_inode_prepare(struct btrfs_new_inode_args *args,
&args->fname);
if (ret)
return ret;
- args->name = (struct qstr)FSTR_TO_QSTR(&args->fname.disk_name);
}
ret = posix_acl_create(dir, &inode->i_mode, &args->default_acl, &args->acl);
@@ -6374,7 +6362,7 @@ int btrfs_create_new_inode(struct btrfs_trans_handle *trans,
{
struct inode *dir = args->dir;
struct inode *inode = args->inode;
- const struct qstr *name = args->orphan ? NULL : &args->dentry->d_name;
+ const struct fscrypt_str *name = args->orphan ? NULL : &args->fname.disk_name;
struct btrfs_fs_info *fs_info = btrfs_sb(dir->i_sb);
struct btrfs_root *root;
struct btrfs_inode_item *inode_item;
@@ -6609,7 +6597,7 @@ int btrfs_create_new_inode(struct btrfs_trans_handle *trans,
*/
int btrfs_add_link(struct btrfs_trans_handle *trans,
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 ret = 0;
struct btrfs_key key;
@@ -6765,7 +6753,6 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
struct inode *inode = d_inode(old_dentry);
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
struct fscrypt_name fname;
- struct qstr name;
u64 index;
int err;
int drop_inode = 0;
@@ -6781,8 +6768,6 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
if (err)
goto fail;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
-
err = btrfs_set_inode_index(BTRFS_I(dir), &index);
if (err)
goto fail;
@@ -6809,7 +6794,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
set_bit(BTRFS_INODE_COPY_EVERYTHING, &BTRFS_I(inode)->runtime_flags);
err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
- &name, 1, index);
+ &fname.disk_name, 1, index);
if (err) {
drop_inode = 1;
@@ -9107,7 +9092,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
int ret2;
bool need_abort = false;
struct fscrypt_name old_fname, new_fname;
- struct qstr old_name, new_name;
+ struct fscrypt_str *old_name, *new_name;
/*
* For non-subvolumes allow exchange only within one subvolume, in the
@@ -9129,8 +9114,8 @@ static int btrfs_rename_exchange(struct inode *old_dir,
return ret;
}
- old_name = (struct qstr)FSTR_TO_QSTR(&old_fname.disk_name);
- new_name = (struct qstr)FSTR_TO_QSTR(&new_fname.disk_name);
+ old_name = &old_fname.disk_name;
+ new_name = &new_fname.disk_name;
/* close the race window with snapshot create/destroy ioctl */
if (old_ino == BTRFS_FIRST_FREE_OBJECTID ||
@@ -9199,7 +9184,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
/* force full log commit if subvolume involved. */
btrfs_set_log_full_commit(trans);
} else {
- ret = btrfs_insert_inode_ref(trans, dest, &new_name, old_ino,
+ ret = btrfs_insert_inode_ref(trans, dest, new_name, old_ino,
btrfs_ino(BTRFS_I(new_dir)),
old_idx);
if (ret)
@@ -9212,7 +9197,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
/* force full log commit if subvolume involved. */
btrfs_set_log_full_commit(trans);
} else {
- ret = btrfs_insert_inode_ref(trans, root, &old_name, new_ino,
+ ret = btrfs_insert_inode_ref(trans, root, old_name, new_ino,
btrfs_ino(BTRFS_I(old_dir)),
new_idx);
if (ret) {
@@ -9247,7 +9232,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
} else { /* src is an inode */
ret = __btrfs_unlink_inode(trans, BTRFS_I(old_dir),
BTRFS_I(old_dentry->d_inode),
- &old_name, &old_rename_ctx);
+ old_name, &old_rename_ctx);
if (!ret)
ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
}
@@ -9262,7 +9247,7 @@ static int btrfs_rename_exchange(struct inode *old_dir,
} else { /* dest is an inode */
ret = __btrfs_unlink_inode(trans, BTRFS_I(new_dir),
BTRFS_I(new_dentry->d_inode),
- &new_name, &new_rename_ctx);
+ new_name, &new_rename_ctx);
if (!ret)
ret = btrfs_update_inode(trans, dest, BTRFS_I(new_inode));
}
@@ -9272,14 +9257,14 @@ static int btrfs_rename_exchange(struct inode *old_dir,
}
ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode),
- &new_name, 0, old_idx);
+ new_name, 0, old_idx);
if (ret) {
btrfs_abort_transaction(trans, ret);
goto out_fail;
}
ret = btrfs_add_link(trans, BTRFS_I(old_dir), BTRFS_I(new_inode),
- &old_name, 0, new_idx);
+ old_name, 0, new_idx);
if (ret) {
btrfs_abort_transaction(trans, ret);
goto out_fail;
@@ -9364,7 +9349,6 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
int ret2;
u64 old_ino = btrfs_ino(BTRFS_I(old_inode));
struct fscrypt_name old_fname, new_fname;
- struct qstr old_name, new_name;
if (btrfs_ino(BTRFS_I(new_dir)) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID)
return -EPERM;
@@ -9391,12 +9375,8 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
return ret;
}
- old_name = (struct qstr)FSTR_TO_QSTR(&old_fname.disk_name);
- new_name = (struct qstr)FSTR_TO_QSTR(&new_fname.disk_name);
-
/* check for collisions, even if the name isn't there */
- ret = btrfs_check_dir_item_collision(dest, new_dir->i_ino, &new_name);
-
+ ret = btrfs_check_dir_item_collision(dest, new_dir->i_ino, &new_fname.disk_name);
if (ret) {
if (ret == -EEXIST) {
/* we shouldn't get
@@ -9489,8 +9469,9 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
/* force full log commit if subvolume involved. */
btrfs_set_log_full_commit(trans);
} else {
- ret = btrfs_insert_inode_ref(trans, dest, &new_name, old_ino,
- btrfs_ino(BTRFS_I(new_dir)), index);
+ ret = btrfs_insert_inode_ref(trans, dest, &new_fname.disk_name,
+ old_ino, btrfs_ino(BTRFS_I(new_dir)),
+ index);
if (ret)
goto out_fail;
}
@@ -9513,7 +9494,7 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
} else {
ret = __btrfs_unlink_inode(trans, BTRFS_I(old_dir),
BTRFS_I(d_inode(old_dentry)),
- &old_name, &rename_ctx);
+ &old_fname.disk_name, &rename_ctx);
if (!ret)
ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
}
@@ -9532,7 +9513,7 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
} else {
ret = btrfs_unlink_inode(trans, BTRFS_I(new_dir),
BTRFS_I(d_inode(new_dentry)),
- &new_name);
+ &new_fname.disk_name);
}
if (!ret && new_inode->i_nlink == 0)
ret = btrfs_orphan_add(trans,
@@ -9544,7 +9525,7 @@ static int btrfs_rename(struct user_namespace *mnt_userns,
}
ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode),
- &new_name, 0, index);
+ &new_fname.disk_name, 0, index);
if (ret) {
btrfs_abort_transaction(trans, ret);
goto out_fail;
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 5305d98905cea..9e323420c96d3 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -951,7 +951,7 @@ static noinline int btrfs_mksubvol(const struct path *parent,
struct inode *dir = d_inode(parent->dentry);
struct btrfs_fs_info *fs_info = btrfs_sb(dir->i_sb);
struct dentry *dentry;
- struct qstr name_str = QSTR_INIT(name, namelen);
+ struct fscrypt_str name_str = FSTR_INIT((char *)name, namelen);
int error;
error = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT);
@@ -3782,7 +3782,7 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp)
struct btrfs_trans_handle *trans;
struct btrfs_path *path = NULL;
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 dir_id;
int ret;
diff --git a/fs/btrfs/root-tree.c b/fs/btrfs/root-tree.c
index cf29241b9b310..7d783f0943068 100644
--- a/fs/btrfs/root-tree.c
+++ b/fs/btrfs/root-tree.c
@@ -328,7 +328,7 @@ int btrfs_del_root(struct btrfs_trans_handle *trans,
int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
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_path *path;
@@ -400,7 +400,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,
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_key key;
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index 833364527554c..547b5c2292186 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -1596,7 +1596,7 @@ static int gen_unique_name(struct send_ctx *sctx,
return -ENOMEM;
while (1) {
- struct qstr tmp_name;
+ struct fscrypt_str tmp_name;
len = snprintf(tmp, sizeof(tmp), "o%llu-%llu-%llu",
ino, gen, idx);
@@ -1756,7 +1756,7 @@ static int lookup_dir_item_inode(struct btrfs_root *root,
struct btrfs_dir_item *di;
struct btrfs_key key;
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();
if (!path)
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index bf56e4d6b9f48..2c562febd801e 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1398,7 +1398,7 @@ static int get_default_subvol_objectid(struct btrfs_fs_info *fs_info, u64 *objec
struct btrfs_dir_item *di;
struct btrfs_path *path;
struct btrfs_key location;
- struct qstr name = QSTR_INIT("default", 7);
+ struct fscrypt_str name = FSTR_INIT("default", 7);
u64 dir_id;
path = btrfs_alloc_path();
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index c8918bdf15ccd..1193214ba8c10 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -1641,7 +1641,6 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
u64 root_flags;
unsigned int nofs_flags;
struct fscrypt_name fname;
- struct qstr name;
ASSERT(pending->path);
path = pending->path;
@@ -1661,7 +1660,6 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
memalloc_nofs_restore(nofs_flags);
if (pending->error)
goto free_pending;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
pending->error = btrfs_get_free_objectid(tree_root, &objectid);
if (pending->error)
@@ -1709,7 +1707,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
/* check if there is a file/dir which has the same name. */
dir_item = btrfs_lookup_dir_item(NULL, parent_root, path,
btrfs_ino(BTRFS_I(parent_inode)),
- &name, 0);
+ &fname.disk_name, 0);
if (dir_item != NULL && !IS_ERR(dir_item)) {
pending->error = -EEXIST;
goto dir_item_existed;
@@ -1804,7 +1802,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
ret = btrfs_add_root_ref(trans, objectid,
parent_root->root_key.objectid,
btrfs_ino(BTRFS_I(parent_inode)), index,
- &name);
+ &fname.disk_name);
if (ret) {
btrfs_abort_transaction(trans, ret);
goto fail;
@@ -1836,8 +1834,9 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
if (ret < 0)
goto fail;
- ret = btrfs_insert_dir_item(trans, &name, BTRFS_I(parent_inode), &key,
- BTRFS_FT_DIR, index);
+ ret = btrfs_insert_dir_item(trans, &fname.disk_name,
+ BTRFS_I(parent_inode), &key, BTRFS_FT_DIR,
+ index);
/* We have check then name at the beginning, so it is impossible. */
BUG_ON(ret == -EEXIST || ret == -EOVERFLOW);
if (ret) {
@@ -1846,7 +1845,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
}
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_ctime = parent_inode->i_mtime;
ret = btrfs_update_inode_fallback(trans, parent_root, BTRFS_I(parent_inode));
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 25fd3f34b8f21..ab7893debf07a 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -596,7 +596,7 @@ static int overwrite_item(struct btrfs_trans_handle *trans,
}
static int read_alloc_one_name(struct extent_buffer *eb, void *start, int len,
- struct qstr *name)
+ struct fscrypt_str *name)
{
char *buf;
@@ -916,7 +916,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans,
static int unlink_inode_for_log_replay(struct btrfs_trans_handle *trans,
struct btrfs_inode *dir,
struct btrfs_inode *inode,
- const struct qstr *name)
+ const struct fscrypt_str *name)
{
int ret;
@@ -947,7 +947,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
{
struct btrfs_root *root = dir->root;
struct inode *inode;
- struct qstr name;
+ struct fscrypt_str name;
struct extent_buffer *leaf;
struct btrfs_key location;
int ret;
@@ -988,7 +988,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
static noinline int inode_in_dir(struct btrfs_root *root,
struct btrfs_path *path,
u64 dirid, u64 objectid, u64 index,
- struct qstr *name)
+ struct fscrypt_str *name)
{
struct btrfs_dir_item *di;
struct btrfs_key location;
@@ -1035,7 +1035,7 @@ static noinline int inode_in_dir(struct btrfs_root *root,
static noinline int backref_in_log(struct btrfs_root *log,
struct btrfs_key *key,
u64 ref_objectid,
- const struct qstr *name)
+ const struct fscrypt_str *name)
{
struct btrfs_path *path;
int ret;
@@ -1071,7 +1071,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
struct btrfs_inode *dir,
struct btrfs_inode *inode,
u64 inode_objectid, u64 parent_objectid,
- u64 ref_index, struct qstr *name)
+ u64 ref_index, struct fscrypt_str *name)
{
int ret;
struct extent_buffer *leaf;
@@ -1105,7 +1105,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
ptr = btrfs_item_ptr_offset(leaf, path->slots[0]);
ptr_end = ptr + btrfs_item_size(leaf, path->slots[0]);
while (ptr < ptr_end) {
- struct qstr victim_name;
+ struct fscrypt_str victim_name;
victim_ref = (struct btrfs_inode_ref *)ptr;
ret = read_alloc_one_name(leaf, (victim_ref + 1),
@@ -1155,7 +1155,7 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
base = btrfs_item_ptr_offset(leaf, path->slots[0]);
while (cur_offset < item_size) {
- struct qstr victim_name;
+ struct fscrypt_str victim_name;
extref = (struct btrfs_inode_extref *)(base + cur_offset);
@@ -1230,7 +1230,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,
- struct qstr *name, u64 *index,
+ struct fscrypt_str *name, u64 *index,
u64 *parent_objectid)
{
struct btrfs_inode_extref *extref;
@@ -1252,7 +1252,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,
- struct qstr *name, u64 *index)
+ struct fscrypt_str *name, u64 *index)
{
struct btrfs_inode_ref *ref;
int ret;
@@ -1304,7 +1304,7 @@ static int unlink_old_inode_refs(struct btrfs_trans_handle *trans,
ref_ptr = btrfs_item_ptr_offset(eb, path->slots[0]);
ref_end = ref_ptr + btrfs_item_size(eb, path->slots[0]);
while (ref_ptr < ref_end) {
- struct qstr name;
+ struct fscrypt_str name;
u64 parent_id;
if (key->type == BTRFS_INODE_EXTREF_KEY) {
@@ -1372,7 +1372,7 @@ static noinline int add_inode_ref(struct btrfs_trans_handle *trans,
struct inode *inode = NULL;
unsigned long ref_ptr;
unsigned long ref_end;
- struct qstr name;
+ struct fscrypt_str name;
int ret;
int log_ref_ver = 0;
u64 parent_objectid;
@@ -1766,7 +1766,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans,
static noinline int insert_one_name(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
u64 dirid, u64 index,
- const struct qstr *name,
+ const struct fscrypt_str *name,
struct btrfs_key *location)
{
struct inode *inode;
@@ -1844,7 +1844,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans,
struct btrfs_dir_item *di,
struct btrfs_key *key)
{
- struct qstr name;
+ struct fscrypt_str name;
struct btrfs_dir_item *dir_dst_di;
struct btrfs_dir_item *index_dst_di;
bool dir_dst_matches = false;
@@ -2124,7 +2124,7 @@ static noinline int check_item_in_log(struct btrfs_trans_handle *trans,
struct extent_buffer *eb;
int slot;
struct btrfs_dir_item *di;
- struct qstr name;
+ struct fscrypt_str name;
struct inode *inode = NULL;
struct btrfs_key location;
@@ -3417,7 +3417,7 @@ static int del_logged_dentry(struct btrfs_trans_handle *trans,
struct btrfs_root *log,
struct btrfs_path *path,
u64 dir_ino,
- const struct qstr *name,
+ const struct fscrypt_str *name,
u64 index)
{
struct btrfs_dir_item *di;
@@ -3464,7 +3464,7 @@ static int del_logged_dentry(struct btrfs_trans_handle *trans,
*/
void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- const struct qstr *name,
+ const struct fscrypt_str *name,
struct btrfs_inode *dir, u64 index)
{
struct btrfs_path *path;
@@ -3503,7 +3503,7 @@ void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans,
/* see comments for btrfs_del_dir_entries_in_log */
void btrfs_del_inode_ref_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- const struct qstr *name,
+ const struct fscrypt_str *name,
struct btrfs_inode *inode, u64 dirid)
{
struct btrfs_root *log;
@@ -5267,7 +5267,7 @@ static int btrfs_check_ref_name_override(struct extent_buffer *eb,
u32 this_len;
unsigned long name_ptr;
struct btrfs_dir_item *di;
- struct qstr name_str;
+ struct fscrypt_str name_str;
if (key->type == BTRFS_INODE_REF_KEY) {
struct btrfs_inode_ref *iref;
@@ -7472,7 +7472,6 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,
struct btrfs_root *log = old_dir->root->log_root;
struct btrfs_path *path;
struct fscrypt_name fname;
- struct qstr name;
ASSERT(old_dir_index >= BTRFS_DIR_START_INDEX);
@@ -7480,7 +7479,6 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,
&old_dentry->d_name, 0, &fname);
if (ret)
goto out;
- name = (struct qstr)FSTR_TO_QSTR(&fname.disk_name);
/*
* 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
@@ -7516,7 +7514,7 @@ void btrfs_log_new_name(struct btrfs_trans_handle *trans,
*/
mutex_lock(&old_dir->log_mutex);
ret = del_logged_dentry(trans, log, path, btrfs_ino(old_dir),
- &name, old_dir_index);
+ &fname.disk_name, old_dir_index);
if (ret > 0) {
/*
* The dentry does not exist in the log, so record its
diff --git a/fs/btrfs/tree-log.h b/fs/btrfs/tree-log.h
index 6c0dc79787f05..8adebf4c9adaf 100644
--- a/fs/btrfs/tree-log.h
+++ b/fs/btrfs/tree-log.h
@@ -84,11 +84,11 @@ int btrfs_log_dentry_safe(struct btrfs_trans_handle *trans,
struct btrfs_log_ctx *ctx);
void btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- const struct qstr *name,
+ const struct fscrypt_str *name,
struct btrfs_inode *dir, u64 index);
void btrfs_del_inode_ref_in_log(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- const struct qstr *name,
+ const struct fscrypt_str *name,
struct btrfs_inode *inode, u64 dirid);
void btrfs_end_log_trans(struct btrfs_root *root);
void btrfs_pin_log_trans(struct btrfs_root *root);
--
2.40.1
next prev parent reply other threads:[~2023-10-09 13:16 UTC|newest]
Thread overview: 186+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-09 12:59 [PATCH 6.1 000/162] 6.1.57-rc1 review Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 001/162] spi: zynqmp-gqspi: Convert to platform remove callback returning void Greg Kroah-Hartman
2023-10-09 15:49 ` Uwe Kleine-König
2023-10-09 18:06 ` Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 002/162] spi: zynqmp-gqspi: fix clock imbalance on probe failure Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 003/162] ALSA: hda/tas2781: Add tas2781 HDA driver Greg Kroah-Hartman
2023-10-09 13:20 ` Takashi Iwai
2023-10-09 12:59 ` [PATCH 6.1 004/162] ALSA: hda/realtek: Add quirk for HP Victus 16-d1xxx to enable mute LED Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 005/162] ALSA: hda/realtek: Add quirk for mute LEDs on HP ENVY x360 15-eu0xxx Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 006/162] ALSA: hda/realtek - ALC287 I2S speaker platform support Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 007/162] ALSA: hda/realtek - ALC287 Realtek " Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 008/162] ASoC: soc-utils: Export snd_soc_dai_is_dummy() symbol Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 009/162] ASoC: tegra: Fix redundant PLLA and PLLA_OUT0 updates Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 010/162] mptcp: rename timer related helper to less confusing names Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 011/162] mptcp: fix dangling connection hang-up Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 012/162] mptcp: annotate lockless accesses to sk->sk_err Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 013/162] mptcp: move __mptcp_error_report in protocol.c Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 014/162] mptcp: process pending subflow error on close Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 015/162] ata,scsi: do not issue START STOP UNIT on resume Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 016/162] scsi: sd: Differentiate system and runtime start/stop management Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 017/162] scsi: sd: Do not issue commands to suspended disks on shutdown Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 018/162] scsi: core: Improve type safety of scsi_rescan_device() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 019/162] scsi: Do not attempt to rescan suspended devices Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 020/162] ata: libata-scsi: Fix delayed scsi_rescan_device() execution Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 021/162] NFS: Cleanup unused rpc_clnt variable Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 022/162] NFS: rename nfs_client_kset to nfs_kset Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 023/162] NFSv4: Fix a state manager thread deadlock regression Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 024/162] mm/memory: add vm_normal_folio() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 025/162] mm/mempolicy: convert queue_pages_pmd() to queue_folios_pmd() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 026/162] mm/mempolicy: convert queue_pages_pte_range() to queue_folios_pte_range() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 027/162] mm/mempolicy: convert migrate_page_add() to migrate_folio_add() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 028/162] mm: mempolicy: keep VMA walk if both MPOL_MF_STRICT and MPOL_MF_MOVE are specified Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 029/162] mm/page_alloc: always remove pages from temporary list Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 030/162] mm/page_alloc: leave IRQs enabled for per-cpu page allocations Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 031/162] mm: page_alloc: fix CMA and HIGHATOMIC landing on the wrong buddy list Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 032/162] ring-buffer: remove obsolete comment for free_buffer_page() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 033/162] ring-buffer: Fix bytes info in per_cpu buffer stats Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 034/162] btrfs: use struct qstr instead of name and namelen pairs Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 035/162] btrfs: setup qstr from dentrys using fscrypt helper Greg Kroah-Hartman
2023-10-09 13:00 ` Greg Kroah-Hartman [this message]
2023-10-09 13:00 ` [PATCH 6.1 037/162] Revert "NFSv4: Retry LOCK on OLD_STATEID during delegation return" Greg Kroah-Hartman
2023-10-09 13:00 ` Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 038/162] arm64: Avoid repeated AA64MMFR1_EL1 register read on pagefault path Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 039/162] net: add sysctl accept_ra_min_rtr_lft Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 040/162] net: change accept_ra_min_rtr_lft to affect all RA lifetimes Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 041/162] net: release reference to inet6_dev pointer Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 042/162] arm64: cpufeature: Fix CLRBHB and BC detection Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 043/162] drm/amd/display: Adjust the MST resume flow Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 044/162] iommu/arm-smmu-v3: Set TTL invalidation hint better Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 045/162] iommu/arm-smmu-v3: Avoid constructing invalid range commands Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 046/162] rbd: move rbd_dev_refresh() definition Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 047/162] rbd: decouple header read-in from updating rbd_dev->header Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 048/162] rbd: decouple parent info read-in from updating rbd_dev Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 049/162] rbd: take header_rwsem in rbd_dev_refresh() only when updating Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 050/162] block: fix use-after-free of q->q_usage_counter Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 051/162] hwmon: (nzxt-smart2) Add device id Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 052/162] hwmon: (nzxt-smart2) add another USB ID Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 053/162] i40e: fix the wrong PTP frequency calculation Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 054/162] scsi: zfcp: Fix a double put in zfcp_port_enqueue() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 055/162] iommu/vt-d: Avoid memory allocation in iommu_suspend() Greg Kroah-Hartman
2023-10-09 13:00 ` Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 056/162] vringh: dont use vringh_kiov_advance() in vringh_iov_xfer() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 057/162] net: ethernet: mediatek: disable irq before schedule napi Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 058/162] mptcp: userspace pm allow creating id 0 subflow Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 059/162] qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 060/162] Bluetooth: hci_codec: Fix leaking content of local_codecs Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 061/162] Bluetooth: hci_sync: Fix handling of HCI_QUIRK_STRICT_DUPLICATE_FILTER Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 062/162] wifi: mwifiex: Fix tlv_buf_left calculation Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 063/162] md/raid5: release batch_last before waiting for another stripe_head Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 064/162] PCI: qcom: Fix IPQ8074 enumeration Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 065/162] net: replace calls to sock->ops->connect() with kernel_connect() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 066/162] btrfs: reject unknown mount options early Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 067/162] net: prevent rewrite of msg_name in sock_sendmsg() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 068/162] drm/amd: Fix detection of _PR3 on the PCIe root port Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 069/162] drm/amd: Fix logic error in sienna_cichlid_update_pcie_parameters() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 070/162] arm64: Add Cortex-A520 CPU part definition Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 071/162] arm64: errata: Add Cortex-A520 speculative unprivileged load workaround Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 072/162] HID: sony: Fix a potential memory leak in sony_probe() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 073/162] ubi: Refuse attaching if mtds erasesize is 0 Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 074/162] erofs: fix memory leak of LZMA global compressed deduplication Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 075/162] wifi: iwlwifi: dbg_ini: fix structure packing Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 076/162] wifi: iwlwifi: mvm: Fix a memory corruption issue Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 077/162] wifi: cfg80211: hold wiphy lock in auto-disconnect Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 078/162] wifi: cfg80211: move wowlan disable under locks Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 079/162] wifi: cfg80211: add a work abstraction with special semantics Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 080/162] wifi: cfg80211: fix cqm_config access race Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 081/162] wifi: cfg80211: add missing kernel-doc for cqm_rssi_work Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 082/162] wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 083/162] leds: Drop BUG_ON check for LED_COLOR_ID_MULTI Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 084/162] bpf: Fix tr dereferencing Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 085/162] regulator: mt6358: Drop *_SSHUB regulators Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 086/162] regulator: mt6358: Use linear voltage helpers for single range regulators Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 087/162] regulator: mt6358: split ops for buck and linear range LDO regulators Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 088/162] Bluetooth: Delete unused hci_req_prepare_suspend() declaration Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 089/162] Bluetooth: ISO: Fix handling of listen for unicast Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 090/162] drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 091/162] wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 092/162] perf/x86/amd/core: Fix overflow reset on hotplug Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 093/162] regmap: rbtree: Fix wrong register marked as in-cache when creating new node Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 094/162] wifi: mac80211: fix potential key use-after-free Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 095/162] perf/x86/amd: Do not WARN() on every IRQ Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 096/162] iommu/mediatek: Fix share pgtable for iova over 4GB Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 097/162] regulator/core: regulator_register: set device->class earlier Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 098/162] ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 099/162] scsi: target: core: Fix deadlock due to recursive locking Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 100/162] ima: rework CONFIG_IMA dependency block Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 101/162] NFSv4: Fix a nfs4_state_manager() race Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 102/162] bpf: tcp_read_skb needs to pop skb regardless of seq Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 103/162] bpf, sockmap: Do not inc copied_seq when PEEK flag set Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 104/162] bpf, sockmap: Reject sk_msg egress redirects to non-TCP sockets Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 105/162] modpost: add missing else to the "of" check Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 106/162] net: fix possible store tearing in neigh_periodic_work() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 107/162] bpf: Add BPF_FIB_LOOKUP_SKIP_NEIGH for bpf_fib_lookup Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 108/162] neighbour: annotate lockless accesses to n->nud_state Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 109/162] neighbour: switch to standard rcu, instead of rcu_bh Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 110/162] neighbour: fix data-races around n->output Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 111/162] ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 112/162] ptp: ocp: Fix error handling in ptp_ocp_device_init Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 113/162] net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 114/162] ipv6: tcp: add a missing nf_reset_ct() in 3WHS handling Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 115/162] net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 116/162] net: nfc: llcp: Add lock when modifying device list Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 117/162] net: ethernet: ti: am65-cpsw: Fix error code in am65_cpsw_nuss_init_tx_chns() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 118/162] ibmveth: Remove condition to recompute TCP header checksum Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 119/162] netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 120/162] selftests: netfilter: Test nf_tables audit logging Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 121/162] selftests: netfilter: Extend nft_audit.sh Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 122/162] netfilter: nf_tables: Deduplicate nft_register_obj audit logs Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 123/162] netfilter: nf_tables: nft_set_rbtree: fix spurious insertion failure Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 124/162] ipv4: Set offload_failed flag in fibmatch results Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 125/162] net: stmmac: dwmac-stm32: fix resume on STM32 MCU Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 126/162] tipc: fix a potential deadlock on &tx->lock Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 127/162] tcp: fix quick-ack counting to count actual ACKs of new data Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 128/162] tcp: fix delayed ACKs for MSS boundary condition Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 129/162] sctp: update transport state when processing a dupcook packet Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 130/162] sctp: update hb timer immediately after users change hb_interval Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 131/162] netlink: split up copies in the ack construction Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 132/162] netlink: Fix potential skb memleak in netlink_ack Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 133/162] netlink: annotate data-races around sk->sk_err Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 134/162] HID: sony: remove duplicate NULL check before calling usb_free_urb() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 135/162] HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 136/162] intel_idle: add Emerald Rapids Xeon support Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 137/162] smb: use kernel_connect() and kernel_bind() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 138/162] parisc: Fix crash with nr_cpus=1 option Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 139/162] dm zoned: free dmz->ddev array in dmz_put_zoned_devices Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 140/162] RDMA/core: Require admin capabilities to set system parameters Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 141/162] of: dynamic: Fix potential memory leak in of_changeset_action() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 142/162] IB/mlx4: Fix the size of a buffer in add_port_entries() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 143/162] gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 144/162] gpio: pxa: disable pinctrl calls for MMP_GPIO Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 145/162] RDMA/cma: Initialize ib_sa_multicast structure to 0 when join Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 146/162] RDMA/cma: Fix truncation compilation warning in make_cma_ports Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 147/162] RDMA/uverbs: Fix typo of sizeof argument Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 148/162] RDMA/srp: Do not call scsi_done() from srp_abort() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 149/162] RDMA/siw: Fix connection failure handling Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 150/162] RDMA/mlx5: Fix mutex unlocking on error flow for steering anchor creation Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 151/162] RDMA/mlx5: Fix NULL string error Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 152/162] ALSA: hda/realtek: Fix spelling mistake "powe" -> "power" Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 153/162] ALSA: hda/realtek - Fixed two speaker platform Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 154/162] x86/sev: Use the GHCB protocol when available for SNP CPUID requests Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 155/162] ksmbd: fix race condition between session lookup and expire Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 156/162] ksmbd: fix uaf in smb20_oplock_break_ack Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 157/162] parisc: Restore __ldcw_align for PA-RISC 2.0 processors Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 158/162] ipv6: remove nexthop_fib6_nh_bh() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 159/162] vrf: Fix lockdep splat in output path Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 160/162] btrfs: fix an error handling path in btrfs_rename() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 161/162] btrfs: fix fscrypt name leak after failure to join log transaction Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 162/162] netlink: remove the flex array from struct nlmsghdr Greg Kroah-Hartman
2023-10-09 18:44 ` [PATCH 6.1 000/162] 6.1.57-rc1 review SeongJae Park
2023-10-09 20:43 ` Naresh Kamboju
2023-10-10 16:51 ` Matthieu Baerts
2023-10-10 17:24 ` Eric Dumazet
2023-10-10 18:59 ` Greg Kroah-Hartman
2023-10-09 22:49 ` Shuah Khan
2023-10-09 23:23 ` Florian Fainelli
2023-10-10 5:53 ` Bagas Sanjaya
2023-10-10 8:10 ` Wang Yugui
2023-10-10 11:28 ` Greg Kroah-Hartman
2023-10-10 11:42 ` Wang Yugui
2023-10-10 18:42 ` Greg Kroah-Hartman
2023-10-10 9:51 ` unneeded btrfs changes -- " Pavel Machek
2023-10-10 16:15 ` Greg Kroah-Hartman
2023-10-10 9:59 ` Jon Hunter
2023-10-10 13:21 ` Takeshi Ogasawara
2023-10-10 18:19 ` Guenter Roeck
2023-10-11 9:40 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231009130123.939757453@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dsterba@suse.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=sweettea-kernel@dorminy.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.