From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A5DE2344D95; Mon, 9 Mar 2026 19:24:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773084259; cv=none; b=O/ijrRKwfjUAREqq9nXbtPl5e6e4nLuaw6eHPiUiPwj4/wd6aYNxva1jRW8skjwA57EwkOZHwSQUqZKXRufK5AM8cmyBzfKu5Wpbhb8++kyRJWJpceE2VDRTnNoI/75peusBEoM5LHvoJqjCoJrG8J3+qTy3G2TSc6Zi2xIpRnc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773084259; c=relaxed/simple; bh=IJcAWqvdv23TT6+zVeEt1eaU/4jMTaDgQsGemo50jSg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=WCMAKCJfr3PhNHk5dH8Cwnnlh4MAcZ4WmkpEoSdgV5x6V75QPCK5GdB3SIEJC1rE5en/ZJGHC0Oe4Gcu1jaHB/V9mMLEhWmdwqGBfqgVaIRO9rTNWr/oyP2N0Uju5YhvOSsdrVkSuttNrsFYNZs1OX6U2U9LaUnIYOWl58tLvpw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d1qQBqsF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d1qQBqsF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C028C4CEF7; Mon, 9 Mar 2026 19:24:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773084259; bh=IJcAWqvdv23TT6+zVeEt1eaU/4jMTaDgQsGemo50jSg=; h=From:To:Cc:Subject:Date:From; b=d1qQBqsF4/iw4Tc3hphf5EzwE8e9lxn7/y1F0SXGorIhcJCuz/vu3F8fco+JuWC8d 3eqQ6E8i/+a3x6cnDzBPnGvdDhlFCjsSDxr/Rvhk8AUiyZvdFWOFsL41HtghmCOb3L xod/yj7pTVHsTczJUF9SirwfEjop3B8bai8srWHLID+i+Aor+K9huBr1AmE4hF4oYo +Tu/6oKZxVxkjnuor8CFrw4F7xtYstHg/3aqb5mJVd2frVrJcHac/KcM6t7FkDr2GO sfXN2VCzUDnVQj5d5bRI/f7hKTnKuaOOaaPYGRuJwnEbbLjPram+82QIqrQktOV9HX hhXvwILcV5hxQ== From: Andrey Albershteyn To: linux-xfs@vger.kernel.org, fsverity@lists.linux.dev, linux-fsdevel@vger.kernel.org, ebiggers@kernel.org Cc: Andrey Albershteyn , hch@lst.de, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-btrfs@vger.kernel.org, djwong@kernel.org, david@fromorbit.com Subject: [PATCH v4 00/25] fs-verity support for XFS with post EOF merkle tree Date: Mon, 9 Mar 2026 20:23:15 +0100 Message-ID: <20260309192355.176980-1-aalbersh@kernel.org> X-Mailer: git-send-email 2.51.2 Precedence: bulk X-Mailing-List: fsverity@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Hi all, This patch series adds fs-verity support for XFS. This version stores merkle tree beyond end of the file, the same way as ext4 does it. The difference is that verity descriptor is stored at the next aligned 64k block after the merkle tree last block. This is done due to sparse merkle tree which doesn't store hashes of zero data blocks. The patchset starts with a few fs-verity preparation patches. Then, a few patches to allow iomap to work in post EOF region. The XFS fs-verity implementation follows. The tree is read by iomap into page cache at offset of next largest folio past end of file. The same offset is used for on-disk. This patchsets also synthesizes merkle tree block full of hashes of zeroed data blocks. This merkle blocks are not stored on disk, they are holes in the tree. Testing. The -g verity is passing for 1k, 8k and 4k with/without quota, the tests include different merkle tree block size. This series based on latest fsverity branch with patchset fs generated integrity information [1] on top of fsverity/for-current. kernel: https://git.kernel.org/pub/scm/linux/kernel/git/aalbersh/xfs-linux.git/log/?h=b4/fsverity xfsprogs: https://github.com/alberand/xfsprogs/tree/b4/fsverity xfstests: https://github.com/alberand/xfstests/tree/b4/fsverity Cc: fsverity@lists.linux.dev Cc: linux-fsdevel@vger.kernel.org Cc: linux-xfs@vger.kernel.org Cc: david@fromorbit.com Cc: djwong@kernel.org Cc: ebiggers@kernel.org Cc: hch@lst.de [1]: https://lore.kernel.org/linux-xfs/20260223132021.292832-1-hch@lst.de/ --- Changes in v4: - Use fserror interface in fsverity instead of fs callback - Hoist pagecache_read from f2fs/ext4 to fsverity - Refactor iomap code - Fetch fsverity_info only for file data and merkle tree holes - Do not disable preallocation, remove unwritten extents instead - Offload fsverity hash I/O to fsverity workqueue in read path - Store merkle tree at round_up(i_size, 64k) - Add a spacing between merkle tree and fsverity descriptor as next 64k aligned block - Squash helpers into first user commits - Squash on-disk format changes into single commit - Drop different offset for pagecache/on-disk - Don't zero out pages in higher order folios in write path - Link to v3: https://lore.kernel.org/fsverity/20260217231937.1183679-1-aalbersh@kernel.org/T/#t Changes in v3: - Different on-disk and pagecache offset - Use read path ioends - Switch to hashtable fsverity info - Synthesize merkle tree blocks full of zeroes - Other minor refactors - Link to v2: https://lore.kernel.org/fsverity/20260114164210.GO15583@frogsfrogsfrogs/T/#t Changes in v2: - Move to VFS interface for merkle tree block reading - Drop patchset for per filesystem workqueues - Change how offsets of the descriptor and tree metadata is calculated - Store fs-verity descriptor in data fork side by side with merkle tree - Simplify iomap changes, remove interface for post eof read/write - Get rid of extended attribute implementation - Link to v1: https://lore.kernel.org/r/20250728-fsverity-v1-0-9e5443af0e34@kernel.org Andrey Albershteyn (23): fsverity: report validation errors through fserror to fsnotify fsverity: expose ensure_fsverity_info() fsverity: generate and store zero-block hash fsverity: introduce fsverity_folio_zero_hash() fsverity: pass digest size and hash of the empty block to ->write fsverity: hoist pagecache_read from f2fs/ext4 to fsverity iomap: introduce IOMAP_F_FSVERITY and teach writeback to handle fsverity iomap: obtain fsverity info for read path iomap: issue readahead for fsverity merkle tree iomap: teach iomap to handle fsverity holes and verify data holes iomap: introduce iomap_fsverity_write() for writing fsverity metadata xfs: introduce fsverity on-disk changes xfs: initialize fs-verity on file open xfs: don't allow to enable DAX on fs-verity sealed inode xfs: disable direct read path for fs-verity files xfs: handle fsverity I/O in write/read path xfs: use read ioend for fsverity data verification xfs: add fs-verity support xfs: remove unwritten extents after preallocations in fsverity metadata xfs: add fs-verity ioctls xfs: introduce health state for corrupted fsverity metadata xfs: add fsverity traces xfs: enable ro-compat fs-verity flag Darrick J. Wong (2): xfs: advertise fs-verity being available on filesystem xfs: check and repair the verity inode flag state fs/btrfs/verity.c | 6 +- fs/ext4/verity.c | 36 +-- fs/f2fs/verity.c | 34 +-- fs/iomap/buffered-io.c | 97 ++++++- fs/iomap/trace.h | 3 +- fs/verity/enable.c | 4 +- fs/verity/fsverity_private.h | 3 + fs/verity/open.c | 8 +- fs/verity/pagecache.c | 55 ++++ fs/verity/verify.c | 2 + fs/xfs/Makefile | 1 + fs/xfs/libxfs/xfs_bmap.c | 7 + fs/xfs/libxfs/xfs_format.h | 13 +- fs/xfs/libxfs/xfs_fs.h | 2 + fs/xfs/libxfs/xfs_health.h | 4 +- fs/xfs/libxfs/xfs_inode_buf.c | 8 + fs/xfs/libxfs/xfs_inode_util.c | 2 + fs/xfs/libxfs/xfs_sb.c | 4 + fs/xfs/scrub/attr.c | 7 + fs/xfs/scrub/common.c | 53 ++++ fs/xfs/scrub/common.h | 2 + fs/xfs/scrub/inode.c | 7 + fs/xfs/scrub/inode_repair.c | 36 +++ fs/xfs/xfs_aops.c | 48 +++- fs/xfs/xfs_bmap_util.c | 8 + fs/xfs/xfs_file.c | 19 +- fs/xfs/xfs_fsverity.c | 460 +++++++++++++++++++++++++++++++++ fs/xfs/xfs_fsverity.h | 28 ++ fs/xfs/xfs_health.c | 1 + fs/xfs/xfs_inode.h | 6 + fs/xfs/xfs_ioctl.c | 14 + fs/xfs/xfs_iomap.c | 15 +- fs/xfs/xfs_iops.c | 4 + fs/xfs/xfs_message.c | 4 + fs/xfs/xfs_message.h | 1 + fs/xfs/xfs_mount.h | 4 + fs/xfs/xfs_super.c | 7 + fs/xfs/xfs_trace.h | 45 ++++ include/linux/fsverity.h | 17 +- include/linux/iomap.h | 10 + 40 files changed, 992 insertions(+), 93 deletions(-) create mode 100644 fs/xfs/xfs_fsverity.c create mode 100644 fs/xfs/xfs_fsverity.h -- 2.51.2 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 34FC7FCA178 for ; Mon, 9 Mar 2026 19:24:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:MIME-Version:Message-ID:Date:To:Sender: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=9cOw0jXHjDtesvQLXoKfk9ZMoCui4CMSXxhldAdUT1s=; b=GgXxE01JhvblzRuNHbbyPgFp7s DusqIKuIOJmBozRPMuQ0SmObbVGGqkisU8xhoIhUIUR3ZCZpVUN5TmonR++jANhAgVztXJ8XBMT4V DWm0s9LdbIyQg403MvpscWU1TyMj+PHmzi7ony/oEU9h2Ed1eWBnk4w46nF1aClA/niM=; Received: from [127.0.0.1] (helo=sfs-ml-3.v29.lw.sourceforge.com) by sfs-ml-3.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1vzgDK-00085v-Pm; Mon, 09 Mar 2026 19:24:26 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-3.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vzgDJ-00085p-QG for linux-f2fs-devel@lists.sourceforge.net; Mon, 09 Mar 2026 19:24:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:Message-ID: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=BpECEDfBUXTL2aDPQ6xA0S57q/XrUD1U+dGUvxEj5S4=; b=bpPlrviEUDFQSMg6y/a6O8QOEX aKt4ARJEIgHVygVitw8arf+W8NzjLLIE5aVjVWWtYiP9CYX/5baDtXyBTFJDVZ1gwsYBN9UFBk4Me 4gZ9PI6vybQ7o8N2NQzZTIr5Gc/R+QjnKigTyBWnlu4NPgorZHUNG9q+6tWPIGtvkt2I=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From :Sender:Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post: List-Owner:List-Archive; bh=BpECEDfBUXTL2aDPQ6xA0S57q/XrUD1U+dGUvxEj5S4=; b=e 83rYD1faFrAHFNUMiXp1qlztkHLZEgKJ2GPiGHS4/LDXHReBcV6b9q4IsYSIoSJnXZpJ2bDYDc2X8 8nhgVaq7WMJNMOAY6le7yHIXVXYWIv94GX158jAxLtMa+YVWxFqH9TL5qgN823UxAx1Phd0JQsv4m CMVD0Gn/wlcmu9lc=; Received: from tor.source.kernel.org ([172.105.4.254]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1vzgDJ-0001E1-4c for linux-f2fs-devel@lists.sourceforge.net; Mon, 09 Mar 2026 19:24:25 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 644E560054; Mon, 9 Mar 2026 19:24:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C028C4CEF7; Mon, 9 Mar 2026 19:24:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773084259; bh=IJcAWqvdv23TT6+zVeEt1eaU/4jMTaDgQsGemo50jSg=; h=From:To:Cc:Subject:Date:From; b=d1qQBqsF4/iw4Tc3hphf5EzwE8e9lxn7/y1F0SXGorIhcJCuz/vu3F8fco+JuWC8d 3eqQ6E8i/+a3x6cnDzBPnGvdDhlFCjsSDxr/Rvhk8AUiyZvdFWOFsL41HtghmCOb3L xod/yj7pTVHsTczJUF9SirwfEjop3B8bai8srWHLID+i+Aor+K9huBr1AmE4hF4oYo +Tu/6oKZxVxkjnuor8CFrw4F7xtYstHg/3aqb5mJVd2frVrJcHac/KcM6t7FkDr2GO sfXN2VCzUDnVQj5d5bRI/f7hKTnKuaOOaaPYGRuJwnEbbLjPram+82QIqrQktOV9HX hhXvwILcV5hxQ== To: linux-xfs@vger.kernel.org, fsverity@lists.linux.dev, linux-fsdevel@vger.kernel.org, ebiggers@kernel.org Date: Mon, 9 Mar 2026 20:23:15 +0100 Message-ID: <20260309192355.176980-1-aalbersh@kernel.org> X-Mailer: git-send-email 2.51.2 MIME-Version: 1.0 X-Headers-End: 1vzgDJ-0001E1-4c Subject: [f2fs-dev] [PATCH v4 00/25] fs-verity support for XFS with post EOF merkle tree X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Andrey Albershteyn via Linux-f2fs-devel Reply-To: Andrey Albershteyn Cc: Andrey Albershteyn , djwong@kernel.org, david@fromorbit.com, linux-f2fs-devel@lists.sourceforge.net, linux-ext4@vger.kernel.org, hch@lst.de, linux-btrfs@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net Hi all, This patch series adds fs-verity support for XFS. This version stores merkle tree beyond end of the file, the same way as ext4 does it. The difference is that verity descriptor is stored at the next aligned 64k block after the merkle tree last block. This is done due to sparse merkle tree which doesn't store hashes of zero data blocks. The patchset starts with a few fs-verity preparation patches. Then, a few patches to allow iomap to work in post EOF region. The XFS fs-verity implementation follows. The tree is read by iomap into page cache at offset of next largest folio past end of file. The same offset is used for on-disk. This patchsets also synthesizes merkle tree block full of hashes of zeroed data blocks. This merkle blocks are not stored on disk, they are holes in the tree. Testing. The -g verity is passing for 1k, 8k and 4k with/without quota, the tests include different merkle tree block size. This series based on latest fsverity branch with patchset fs generated integrity information [1] on top of fsverity/for-current. kernel: https://git.kernel.org/pub/scm/linux/kernel/git/aalbersh/xfs-linux.git/log/?h=b4/fsverity xfsprogs: https://github.com/alberand/xfsprogs/tree/b4/fsverity xfstests: https://github.com/alberand/xfstests/tree/b4/fsverity Cc: fsverity@lists.linux.dev Cc: linux-fsdevel@vger.kernel.org Cc: linux-xfs@vger.kernel.org Cc: david@fromorbit.com Cc: djwong@kernel.org Cc: ebiggers@kernel.org Cc: hch@lst.de [1]: https://lore.kernel.org/linux-xfs/20260223132021.292832-1-hch@lst.de/ --- Changes in v4: - Use fserror interface in fsverity instead of fs callback - Hoist pagecache_read from f2fs/ext4 to fsverity - Refactor iomap code - Fetch fsverity_info only for file data and merkle tree holes - Do not disable preallocation, remove unwritten extents instead - Offload fsverity hash I/O to fsverity workqueue in read path - Store merkle tree at round_up(i_size, 64k) - Add a spacing between merkle tree and fsverity descriptor as next 64k aligned block - Squash helpers into first user commits - Squash on-disk format changes into single commit - Drop different offset for pagecache/on-disk - Don't zero out pages in higher order folios in write path - Link to v3: https://lore.kernel.org/fsverity/20260217231937.1183679-1-aalbersh@kernel.org/T/#t Changes in v3: - Different on-disk and pagecache offset - Use read path ioends - Switch to hashtable fsverity info - Synthesize merkle tree blocks full of zeroes - Other minor refactors - Link to v2: https://lore.kernel.org/fsverity/20260114164210.GO15583@frogsfrogsfrogs/T/#t Changes in v2: - Move to VFS interface for merkle tree block reading - Drop patchset for per filesystem workqueues - Change how offsets of the descriptor and tree metadata is calculated - Store fs-verity descriptor in data fork side by side with merkle tree - Simplify iomap changes, remove interface for post eof read/write - Get rid of extended attribute implementation - Link to v1: https://lore.kernel.org/r/20250728-fsverity-v1-0-9e5443af0e34@kernel.org Andrey Albershteyn (23): fsverity: report validation errors through fserror to fsnotify fsverity: expose ensure_fsverity_info() fsverity: generate and store zero-block hash fsverity: introduce fsverity_folio_zero_hash() fsverity: pass digest size and hash of the empty block to ->write fsverity: hoist pagecache_read from f2fs/ext4 to fsverity iomap: introduce IOMAP_F_FSVERITY and teach writeback to handle fsverity iomap: obtain fsverity info for read path iomap: issue readahead for fsverity merkle tree iomap: teach iomap to handle fsverity holes and verify data holes iomap: introduce iomap_fsverity_write() for writing fsverity metadata xfs: introduce fsverity on-disk changes xfs: initialize fs-verity on file open xfs: don't allow to enable DAX on fs-verity sealed inode xfs: disable direct read path for fs-verity files xfs: handle fsverity I/O in write/read path xfs: use read ioend for fsverity data verification xfs: add fs-verity support xfs: remove unwritten extents after preallocations in fsverity metadata xfs: add fs-verity ioctls xfs: introduce health state for corrupted fsverity metadata xfs: add fsverity traces xfs: enable ro-compat fs-verity flag Darrick J. Wong (2): xfs: advertise fs-verity being available on filesystem xfs: check and repair the verity inode flag state fs/btrfs/verity.c | 6 +- fs/ext4/verity.c | 36 +-- fs/f2fs/verity.c | 34 +-- fs/iomap/buffered-io.c | 97 ++++++- fs/iomap/trace.h | 3 +- fs/verity/enable.c | 4 +- fs/verity/fsverity_private.h | 3 + fs/verity/open.c | 8 +- fs/verity/pagecache.c | 55 ++++ fs/verity/verify.c | 2 + fs/xfs/Makefile | 1 + fs/xfs/libxfs/xfs_bmap.c | 7 + fs/xfs/libxfs/xfs_format.h | 13 +- fs/xfs/libxfs/xfs_fs.h | 2 + fs/xfs/libxfs/xfs_health.h | 4 +- fs/xfs/libxfs/xfs_inode_buf.c | 8 + fs/xfs/libxfs/xfs_inode_util.c | 2 + fs/xfs/libxfs/xfs_sb.c | 4 + fs/xfs/scrub/attr.c | 7 + fs/xfs/scrub/common.c | 53 ++++ fs/xfs/scrub/common.h | 2 + fs/xfs/scrub/inode.c | 7 + fs/xfs/scrub/inode_repair.c | 36 +++ fs/xfs/xfs_aops.c | 48 +++- fs/xfs/xfs_bmap_util.c | 8 + fs/xfs/xfs_file.c | 19 +- fs/xfs/xfs_fsverity.c | 460 +++++++++++++++++++++++++++++++++ fs/xfs/xfs_fsverity.h | 28 ++ fs/xfs/xfs_health.c | 1 + fs/xfs/xfs_inode.h | 6 + fs/xfs/xfs_ioctl.c | 14 + fs/xfs/xfs_iomap.c | 15 +- fs/xfs/xfs_iops.c | 4 + fs/xfs/xfs_message.c | 4 + fs/xfs/xfs_message.h | 1 + fs/xfs/xfs_mount.h | 4 + fs/xfs/xfs_super.c | 7 + fs/xfs/xfs_trace.h | 45 ++++ include/linux/fsverity.h | 17 +- include/linux/iomap.h | 10 + 40 files changed, 992 insertions(+), 93 deletions(-) create mode 100644 fs/xfs/xfs_fsverity.c create mode 100644 fs/xfs/xfs_fsverity.h -- 2.51.2 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel