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 <jo...@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 e5879bd7f2f7..f5367091c0cd 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -374,6 +374,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 87b38be47d0b..99fb5a613fb8 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -9714,6 +9714,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

Reply via email to