On Thu, 2 Jul 2026 at 00:26, Qu Wenruo <[email protected]> wrote:
> 在 2026/7/2 01:29, Daniel Vacek 写道:
> > On Fri, 26 Jun 2026 at 01:50, Qu Wenruo <[email protected]> wrote:
> >> 在 2026/6/25 02:21, Daniel Vacek 写道:
> >>> From: Sweet Tea Dorminy <[email protected]>
> >>>
> >>> Encrypted file extents now have the 'encryption' field set to an
> >>> encryption type. Let's print it.
> >>>
> >>> Signed-off-by: Sweet Tea Dorminy <[email protected]>
> >>> Signed-off-by: Daniel Vacek <[email protected]>
> >>> ---
> >>> check/main.c | 1 -
> >>> kernel-shared/print-tree.c | 2 ++
> >>> 2 files changed, 2 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/check/main.c b/check/main.c
> >>> index dedb4db4..a32247b3 100644
> >>> --- a/check/main.c
> >>> +++ b/check/main.c
> >>> @@ -1778,7 +1778,6 @@ static int process_file_extent(struct btrfs_root
> >>> *root,
> >>> rec->errors |= I_ERR_BAD_FILE_EXTENT;
> >>> if (extent_type == BTRFS_FILE_EXTENT_PREALLOC &&
> >>> (btrfs_file_extent_compression(eb, fi) ||
> >>> - btrfs_file_extent_encryption(eb, fi) ||
> >>
> >> May I ask why preallocated file extent would have encryption value set?
> >>
> >> My common sense says that encryption policy should only be set for
> >> regular file extents.
> >
> > There's nothing wrong with pre-allocating encrypted files. Unlike
> > compression, the exact size is known beforehand.
>
> IN that case, does it mean even a hole will have encryption value set?
>
> This looks weird. Is there any special reason for setting encryption
> value for hole/preallocated range?
>
> Can't we only set the encryption value only for regular,
> non-preallocated extents?
What's so weird about it? Since the inode is encrypted, related parts are too.
--nX
> Thanks,
> Qu
>
> >
> > Simillar to NOCOW, the encrypted data will be stored with the next write.
> >
> > --nX
> >
> >> Thanks,
> >> Qu
> >>
> >>> btrfs_file_extent_other_encoding(eb, fi)))
> >>> rec->errors |= I_ERR_BAD_FILE_EXTENT;
> >>> if (compression && rec->nodatasum)
> >>> diff --git a/kernel-shared/print-tree.c b/kernel-shared/print-tree.c
> >>> index 0afa3696..159f0825 100644
> >>> --- a/kernel-shared/print-tree.c
> >>> +++ b/kernel-shared/print-tree.c
> >>> @@ -471,6 +471,8 @@ static void print_file_extent_item(struct
> >>> extent_buffer *eb,
> >>> printf("\t\textent compression %hhu (%s)\n",
> >>> btrfs_file_extent_compression(eb, fi),
> >>> compress_str);
> >>> + printf("\t\textent encryption %hhu\n",
> >>> + btrfs_file_extent_encryption(eb, fi));
> >>> }
> >>>
> >>> /* Caller should ensure sizeof(*ret) >= 16("DATA|TREE_BLOCK") */
> >>
> >
>