From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EAB30394481 for ; Fri, 6 Feb 2026 18:42:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.128.41 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770403377; cv=pass; b=WG4O8FHEW0Xn7jo4JM1bwuXESIuWTp4zMJBFFWMsWjNJz5u+NJQS4hqCsqjf0a2AnOpKr0Db4BUVo8XE7hE/rLIcUJAIttn9Qpa3g858oXCwJonxeeaRUUw496inKXaZCzFoLd2CHuwmYsupzXuPLg8I847b4N0c9Jj+HbDWaUs= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770403377; c=relaxed/simple; bh=g8Y05MZTXiuFZYd64ykcy98HIVrpwYbXDId97ydkZYA=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Mah8+TAzUogCuAkAti+3ZCR0iJTniYqpCTL6LTAM3EWa9ty+UDwLL/Ynei1lNxeniBir70IEqhtPAzvalEdj10idICQLewrizHE5U6+92jSrpN/HesxjwZTWjVQUBRH7lF5Pfvqr/SwGQQ307hu8jK3Pa5iSLGWKOVUmnEkq/NA= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=E8yQja34; arc=pass smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="E8yQja34" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-48069a48629so22355685e9.0 for ; Fri, 06 Feb 2026 10:42:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770403375; cv=none; d=google.com; s=arc-20240605; b=Es1wKNrLVUSJGJSCH+RFPhqUK/tWmR/HKWDNR+2m2ADax5VXK/jFOdztS0Z7HCgz2B L+UuqfQSw7kbMX9/DaMnU0zx+v8jrBQWf2SEbFNKQ4ggR6iKr2X+iu1c/isTlnnbQEzs dc80J5pWAX01uA5yNRbdfXMsyACN2bKFJsalcYwXaW+AtdGYz9L8yXDh8ED8ouQ7D1wZ DpQwXln95gwEamDNIPmhogHY2VdWAD7nOeH6ycM6fa49rA+0Tvd/PD2jGaw/KUba8nnn kg+mszYBu7Zpc7tTfvUEsT4ekDhmkEfrsipEpTAZlS8kAp2wqcd1A6umjGA5xpdSwuYK 9Ogw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=Sxa3uxhQCjgxX8L2FFCW63mMb6ghyNt+G2P+1nE+3T8=; fh=mCO6/9NBBiUe4HOtTOKVWazfiri9iCeCCwZ0LI1JxxA=; b=ZFYWYdLSWdK6KyDrWMwBNn7lPtU6MvYxn2hUZ3xH3MVP7/NB1mqjeNnkcwk+n4i2lE GaOU6eEWlQD1i4N1/CZRJRaZkTPyHK38OwdrtOneybdYbwR6/h0JsYe4aqK64A7leQ9M Tu7UC0Bf3wF0RBO6JmaadkxKnomOKpAZA1wyDZbBdvM/lrDX0U+MLC+2top23OPGhWIm LWxyi6rv39r4jozg8fyEwA7N/gG13UvFsZjM2v4ux2PeGpxqpoF6mrpsHKJNH5VKVd+f qWgWIfu3tICtqGjCqLXlfZq/mY/AzQF4qAV457Vv6hky83Zpm+Noxdvufbf0F0XYQrKE gfng==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1770403375; x=1771008175; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Sxa3uxhQCjgxX8L2FFCW63mMb6ghyNt+G2P+1nE+3T8=; b=E8yQja34o1ZTqQjsLKMpplW253rLuzLMpB7gHSKNHCFgB4etc0KTFhal+BdTAgCwB/ F+iw8gxD4FQz9NV00eWtyo5VwRDTXXaXzDiLXxg6AkGNao6DqtaRJD0O0oJQ6j83CC/R /EWpSD+HvRQCxV/6KpVUkiOY1eALHwFvyDHSmqf5Yhowj5lCQTUl7F1mauRVo/fWzJe8 MfsLccPN/i3Br4IQuUfKjuQoywNxqMHq8wASvJCvC3DLydU1d7o6FsjHoWuVIzMfXbVY oFonGh7xgLSgsEDX97aMO9ZmajQmsIquyLJAX05HtuuHN6YHoYU526YVr+fuCm3kjMtQ Uu9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770403375; x=1771008175; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Sxa3uxhQCjgxX8L2FFCW63mMb6ghyNt+G2P+1nE+3T8=; b=SsgMk/eLXNizvazCtbjsN7zyLB2j3laiKXWR5qxjiKBD8YQFQYA65b89UXlG31jSLL NKClbJU09p6sb0LLmKtrU7CU5zYzjGYAhzBnTX3yRFPRC46NV4OShiSxbOyvLX+oq30J 8Zo+SDLi3K3X23IN6IzSemdIHdBAhrNBYx+a0no7x4WweSsRlu9IIJ+xCIVLbrhTh5AC 3W8lAc25RHuHwA39np0xv/JB/4GUb64NVCH4u86ASrC7nQgCQnf3GFq3uQ+q8b2+4ivw YfkpbKItuK6MwlodlOjN0d64FcWxpZTeBqpZUx8taCvg+aw/cIDiWUZ+48GEJfkJOTgd BwpA== X-Forwarded-Encrypted: i=1; AJvYcCWO/1zMNYaWA7qa5I6e23+ZOK3R7CZjPXFQOeyYm5GjYtv4frfXt7rXsGTa9S32tKsBdWQjXCKeO0h6Lg==@vger.kernel.org X-Gm-Message-State: AOJu0YxfdqDDEKaYqtHQ1Y0JRE18u2x+CCNcv6PgdySqQGxmK3K9XoVx JHxJlY2JuELoN1Mwm2J08bdy85Fy8lvuNQ6BmR685L9S1D44sUFHQNYN4I08ZqeSci7W5EB3TBj xCfdaZn4q0kVmuZ2GgSI/V1rxDd6+n2L1Ek0doj9saA== X-Gm-Gg: AZuq6aLkPvRu15sYPavwOCFDGamLTXCGKlYVhEh0xBLCq7Arv6AREKc0iAxSP3Xa4qp urOv2r1nvWYiojKvGf/Q4wRlauPpv/vkeAZJryISsuqIvdPQM3GJOtRqyqazCdmP739kjjGN0G/ ixsXs6IHuF4IdDI3cjK5tw9J8decbMYiqbgCYiQLcCRhtVuh0goKMfZnF6noNT1QFV9X1RsM8l6 YoJ1EVYdTl8HTpvj9mvCOfJplA9Cd7uuavmMCElxUyslcJ1+wriTmyoZusC4S3yweF2iAdov43X SWofGFc8PN5NbdAUeha7cmowj10pW0nOKdalxCIPtwFOYoMGGAQVARU+JCFLXXqBdvgw X-Received: by 2002:a05:600c:1d8c:b0:480:6873:b2f6 with SMTP id 5b1f17b1804b1-48320216ce4mr47675115e9.20.1770403375319; Fri, 06 Feb 2026 10:42:55 -0800 (PST) Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260206182336.1397715-1-neelx@suse.com> In-Reply-To: <20260206182336.1397715-1-neelx@suse.com> From: Daniel Vacek Date: Fri, 6 Feb 2026 19:42:44 +0100 X-Gm-Features: AZwV_QjVbpQ8MRsr1Ro9fPeDc-ZyPEQuxPOuPcg2A5_GzI5Zx2BISHue62_Jkik Message-ID: Subject: Re: [PATCH v6 00/43] btrfs: add fscrypt support To: Chris Mason , Josef Bacik , Eric Biggers , "Theodore Y. Ts'o" , Jaegeuk Kim , Jens Axboe , David Sterba Cc: linux-block@vger.kernel.org, linux-fscrypt@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Heads up, I also have related btrfs-progs and xfs-tests changes matching this series. But I won't be able to send them before my vacation next week. That also means I will (most likely) not be able to get back to review feedback before Feb 16. But for sure, any feedback is appreciated. Thank you, Daniel On Fri, 6 Feb 2026 at 19:23, Daniel Vacek wrote: > > Hello, > > These are the remaining parts from former series [1] from Omar, Sweet Tea > and Josef. Some bits of it were split into the separate set [2] before. > > Notably, at this stage encryption is not supported with RAID5/6 setup > and send is also isabled for now. > > There are a few changes since v5: > * Rebased to btrfs/for-next branch. Couple things changed in the last > years. A few patches were dropped as the code cleaned up or refactored. > More details in the patches themselves. > * As suggested by Qu and Dave, the on-disk format of storing the extent > encryption context was re-designed. Now, a new tree item with dedicated > key is inserted instead of extending the file extent item. As a result > a special care needs to be taken when removing the encrypted extents > to also remove the related encryption context item. > * Fixed bugs found during testing. > > Have a nice day, > Daniel > > [1] v5 https://lore.kernel.org/linux-btrfs/cover.1706116485.git.josef@toxicpanda.com/ > [2] https://lore.kernel.org/linux-btrfs/20251112193611.2536093-1-neelx@suse.com/ > > Josef Bacik (33): > fscrypt: add per-extent encryption support > fscrypt: allow inline encryption for extent based encryption > fscrypt: add a __fscrypt_file_open helper > fscrypt: conditionally don't wipe mk secret until the last active user > is done > blk-crypto: add a process bio callback > fscrypt: add a process_bio hook to fscrypt_operations > fscrypt: add documentation about extent encryption > btrfs: add infrastructure for safe em freeing > btrfs: select encryption dependencies if FS_ENCRYPTION > btrfs: add fscrypt_info and encryption_type to ordered_extent > btrfs: plumb through setting the fscrypt_info for ordered extents > btrfs: populate the ordered_extent with the fscrypt context > btrfs: keep track of fscrypt info and orig_start for dio reads > btrfs: add extent encryption context tree item type > btrfs: pass through fscrypt_extent_info to the file extent helpers > btrfs: implement the fscrypt extent encryption hooks > btrfs: setup fscrypt_extent_info for new extents > btrfs: populate ordered_extent with the orig offset > btrfs: set the bio fscrypt context when applicable > btrfs: add a bio argument to btrfs_csum_one_bio > btrfs: limit encrypted writes to 256 segments > btrfs: implement process_bio cb for fscrypt > btrfs: implement read repair for encryption > btrfs: add test_dummy_encryption support > btrfs: make btrfs_ref_to_path handle encrypted filenames > btrfs: deal with encrypted symlinks in send > btrfs: decrypt file names for send > btrfs: load the inode context before sending writes > btrfs: set the appropriate free space settings in reconfigure > btrfs: support encryption with log replay > btrfs: disable auto defrag on encrypted files > btrfs: disable encryption on RAID5/6 > btrfs: disable send if we have encryption enabled > > Omar Sandoval (6): > fscrypt: expose fscrypt_nokey_name > btrfs: start using fscrypt hooks > btrfs: add inode encryption contexts > btrfs: add new FEATURE_INCOMPAT_ENCRYPT flag > btrfs: adapt readdir for encrypted and nokey names > btrfs: implement fscrypt ioctls > > Sweet Tea Dorminy (4): > btrfs: handle nokey names. > btrfs: add get_devices hook for fscrypt > btrfs: set file extent encryption excplicitly > btrfs: add fscrypt_info and encryption_type to extent_map > > Documentation/filesystems/fscrypt.rst | 41 +++ > block/blk-crypto-fallback.c | 43 +++ > block/blk-crypto-internal.h | 8 + > block/blk-crypto-profile.c | 2 + > block/blk-crypto.c | 6 +- > fs/btrfs/Kconfig | 3 + > fs/btrfs/Makefile | 1 + > fs/btrfs/accessors.h | 2 + > fs/btrfs/backref.c | 42 ++- > fs/btrfs/bio.c | 146 ++++++++- > fs/btrfs/bio.h | 14 +- > fs/btrfs/btrfs_inode.h | 6 +- > fs/btrfs/compression.c | 6 + > fs/btrfs/ctree.h | 3 + > fs/btrfs/defrag.c | 14 + > fs/btrfs/delayed-inode.c | 25 +- > fs/btrfs/delayed-inode.h | 5 +- > fs/btrfs/dir-item.c | 102 +++++- > fs/btrfs/dir-item.h | 10 +- > fs/btrfs/direct-io.c | 28 +- > fs/btrfs/disk-io.c | 3 +- > fs/btrfs/extent_io.c | 115 ++++++- > fs/btrfs/extent_io.h | 3 + > fs/btrfs/extent_map.c | 102 +++++- > fs/btrfs/extent_map.h | 26 ++ > fs/btrfs/file-item.c | 28 +- > fs/btrfs/file-item.h | 2 +- > fs/btrfs/file.c | 75 +++++ > fs/btrfs/fs.h | 6 +- > fs/btrfs/fscrypt.c | 446 ++++++++++++++++++++++++++ > fs/btrfs/fscrypt.h | 108 +++++++ > fs/btrfs/inode.c | 408 +++++++++++++++++------ > fs/btrfs/ioctl.c | 41 ++- > fs/btrfs/ordered-data.c | 35 +- > fs/btrfs/ordered-data.h | 14 + > fs/btrfs/reflink.c | 43 ++- > fs/btrfs/root-tree.c | 9 +- > fs/btrfs/root-tree.h | 2 +- > fs/btrfs/send.c | 134 +++++++- > fs/btrfs/super.c | 99 +++++- > fs/btrfs/super.h | 3 +- > fs/btrfs/sysfs.c | 6 + > fs/btrfs/tree-checker.c | 67 +++- > fs/btrfs/tree-log.c | 34 +- > fs/crypto/crypto.c | 10 +- > fs/crypto/fname.c | 36 --- > fs/crypto/fscrypt_private.h | 42 +++ > fs/crypto/hooks.c | 38 ++- > fs/crypto/inline_crypt.c | 84 ++++- > fs/crypto/keyring.c | 18 +- > fs/crypto/keysetup.c | 165 ++++++++++ > fs/crypto/policy.c | 47 +++ > include/linux/blk-crypto.h | 15 +- > include/linux/fscrypt.h | 125 ++++++++ > include/uapi/linux/btrfs.h | 1 + > include/uapi/linux/btrfs_tree.h | 26 +- > 56 files changed, 2683 insertions(+), 240 deletions(-) > create mode 100644 fs/btrfs/fscrypt.c > create mode 100644 fs/btrfs/fscrypt.h > > -- > 2.51.0 >