[PATCH v4 30/46] btrfs: pass the fscrypt_info through the replace extent infrastructure

Josef Bacik
2023-12-01T22:12:36Z

Prealloc uses the btrfs_replace_file_extents() infrastructure to insert
its new extents. We need to set the fscrypt context on these extents,
so pass this through the btrfs_replace_extent_info so it can be used in
a later patch when we hook in this infrastructure.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
fs/btrfs/ctree.h | 2 ++
fs/btrfs/inode.c | 1 +
2 files changed, 3 insertions(+)

diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index ba73171fb8b0..9eb14b067e1f 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -369,6 +369,8 @@ struct btrfs_replace_extent_info {
char *extent_buf;
/* The length of @extent_buf */
u32 extent_buf_size;
+ /* The fscrypt_extent_info for a new extent. */
+ struct fscrypt_extent_info *fscrypt_info;
/*
* Set to true when attempting to replace a file range with a new extent
* described by this structure, set to false when attempting to clone an
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 8bd5c7488055..231d9fe6ff8a 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -9760,6 +9760,7 @@ static struct btrfs_trans_handle *insert_prealloc_file_extent(
extent_info.update_times = true;
extent_info.qgroup_reserved = qgroup_released;
extent_info.insertions = 0;
+ extent_info.fscrypt_info = fscrypt_info;

path = btrfs_alloc_path();
if (!path) {
--
2.41.0