Whamcloud - gitweb
LU-17248 kernel: add SB_I_STABLE_WRITES to bdev sb flag
authorLi Dongyang <dongyangli@ddn.com>
Wed, 1 Nov 2023 11:36:10 +0000 (22:36 +1100)
committerAndreas Dilger <adilger@whamcloud.com>
Sun, 5 Nov 2023 10:43:39 +0000 (10:43 +0000)
Since RHEL 8.6 wait_for_stable_page() is controlled by
a new flag SB_I_STABLE_WRITES on the super block.

However the new flag is not set on the bdev pseudo sb,
which mean when doing write directly to the block device
we are not waiting on page writeback, this could trigger
false block integrity errors, as page could be modified
again when under writeback, the integrity checksum does
not match the new data any more.

Lustre-change: https://review.whamcloud.com/52922
Lustre-commit: TBD (from 5aeffdbec699abad07ed2326723c7743faadbf8a)

Change-Id: Ie088abf29f40b294c31f993bcfad56d6081a3fce
Test-Parameters: trivial
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/52969
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/kernel_patches/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch [new file with mode: 0644]
lustre/kernel_patches/series/4.18-rhel8.6.series
lustre/kernel_patches/series/4.18-rhel8.7.series
lustre/kernel_patches/series/4.18-rhel8.8.series

diff --git a/lustre/kernel_patches/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch b/lustre/kernel_patches/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch
new file mode 100644 (file)
index 0000000..6c4a32c
--- /dev/null
@@ -0,0 +1,13 @@
+Index: linux-4.18.0-372.32.1.el8_6/fs/block_dev.c
+===================================================================
+--- linux-4.18.0-372.32.1.el8_6.orig/fs/block_dev.c
++++ linux-4.18.0-372.32.1.el8_6/fs/block_dev.c
+@@ -888,7 +888,7 @@ static int bd_init_fs_context(struct fs_
+       struct pseudo_fs_context *ctx = init_pseudo(fc, BDEVFS_MAGIC);
+       if (!ctx)
+               return -ENOMEM;
+-      fc->s_iflags |= SB_I_CGROUPWB;
++      fc->s_iflags |= SB_I_CGROUPWB | SB_I_STABLE_WRITES;
+       ctx->ops = &bdev_sops;
+       return 0;
+ }
index 290517c..8c3600c 100644 (file)
@@ -5,3 +5,4 @@ block-integrity-allow-optional-integrity-functions-rhel8.3.patch
 block-pass-bio-into-integrity_processing_fn-rhel8.patch
 scsi-requeue-aborted-commands-instead-of-retry-rhel8.patch
 snapshot-jbd2-rhel8.3.patch
+block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch
index 0fc30d9..9d08ccc 100644 (file)
@@ -4,3 +4,4 @@ block-integrity-allow-optional-integrity-functions-rhel8.3.patch
 block-pass-bio-into-integrity_processing_fn-rhel8.patch
 scsi-requeue-aborted-commands-instead-of-retry-rhel8.patch
 snapshot-jbd2-rhel8.3.patch
+block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch
index 0fc30d9..9d08ccc 100644 (file)
@@ -4,3 +4,4 @@ block-integrity-allow-optional-integrity-functions-rhel8.3.patch
 block-pass-bio-into-integrity_processing_fn-rhel8.patch
 scsi-requeue-aborted-commands-instead-of-retry-rhel8.patch
 snapshot-jbd2-rhel8.3.patch
+block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch