From 5968bc3954e4d6f596206f236935ce75accbd6dd Mon Sep 17 00:00:00 2001 From: Li Dongyang Date: Wed, 1 Nov 2023 22:36:10 +1100 Subject: [PATCH] LU-17248 kernel: add SB_I_STABLE_WRITES to bdev sb flag 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 Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/52969 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger --- ...ock-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch | 13 +++++++++++++ lustre/kernel_patches/series/4.18-rhel8.6.series | 1 + lustre/kernel_patches/series/4.18-rhel8.7.series | 1 + lustre/kernel_patches/series/4.18-rhel8.8.series | 1 + 4 files changed, 16 insertions(+) create mode 100644 lustre/kernel_patches/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch 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 index 0000000..6c4a32c --- /dev/null +++ b/lustre/kernel_patches/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch @@ -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; + } diff --git a/lustre/kernel_patches/series/4.18-rhel8.6.series b/lustre/kernel_patches/series/4.18-rhel8.6.series index 290517c..8c3600c 100644 --- a/lustre/kernel_patches/series/4.18-rhel8.6.series +++ b/lustre/kernel_patches/series/4.18-rhel8.6.series @@ -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 diff --git a/lustre/kernel_patches/series/4.18-rhel8.7.series b/lustre/kernel_patches/series/4.18-rhel8.7.series index 0fc30d9..9d08ccc 100644 --- a/lustre/kernel_patches/series/4.18-rhel8.7.series +++ b/lustre/kernel_patches/series/4.18-rhel8.7.series @@ -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 diff --git a/lustre/kernel_patches/series/4.18-rhel8.8.series b/lustre/kernel_patches/series/4.18-rhel8.8.series index 0fc30d9..9d08ccc 100644 --- a/lustre/kernel_patches/series/4.18-rhel8.8.series +++ b/lustre/kernel_patches/series/4.18-rhel8.8.series @@ -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 -- 1.8.3.1