From: Li Dongyang Date: Wed, 1 Nov 2023 11:36:10 +0000 (+1100) Subject: LU-17248 kernel: add SB_I_STABLE_WRITES to bdev sb flag X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=5aeffdbec699abad07ed2326723c7743faadbf8a;p=fs%2Flustre-release.git 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. Change-Id: Ie088abf29f40b294c31f993bcfad56d6081a3fce Test-Parameters: trivial Signed-off-by: Li Dongyang --- 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/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel9.patch b/lustre/kernel_patches/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel9.patch new file mode 100644 index 0000000..a83d00f --- /dev/null +++ b/lustre/kernel_patches/patches/block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel9.patch @@ -0,0 +1,13 @@ +Index: linux-5.14.0-162.23.1.el9_1/block/bdev.c +=================================================================== +--- linux-5.14.0-162.23.1.el9_1.orig/block/bdev.c ++++ linux-5.14.0-162.23.1.el9_1/block/bdev.c +@@ -444,7 +444,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 07197769..7390fbf 100644 --- a/lustre/kernel_patches/series/4.18-rhel8.6.series +++ b/lustre/kernel_patches/series/4.18-rhel8.6.series @@ -2,3 +2,4 @@ block-bio-integrity-Advance-seed-correctly-for-large.patch block-integrity-allow-optional-integrity-functions-rhel8.3.patch block-pass-bio-into-integrity_processing_fn-rhel8.patch jbd2-revoke-rhashtable-rhel8.4.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 4b95dad..78919c8 100644 --- a/lustre/kernel_patches/series/4.18-rhel8.7.series +++ b/lustre/kernel_patches/series/4.18-rhel8.7.series @@ -1,3 +1,4 @@ block-integrity-allow-optional-integrity-functions-rhel8.3.patch block-pass-bio-into-integrity_processing_fn-rhel8.patch jbd2-revoke-rhashtable-rhel8.4.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 4b95dad..78919c8 100644 --- a/lustre/kernel_patches/series/4.18-rhel8.8.series +++ b/lustre/kernel_patches/series/4.18-rhel8.8.series @@ -1,3 +1,4 @@ block-integrity-allow-optional-integrity-functions-rhel8.3.patch block-pass-bio-into-integrity_processing_fn-rhel8.patch jbd2-revoke-rhashtable-rhel8.4.patch +block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel8.6.patch diff --git a/lustre/kernel_patches/series/5.14-rhel9.1.series b/lustre/kernel_patches/series/5.14-rhel9.1.series index 419e3c4..2e2dbb7 100644 --- a/lustre/kernel_patches/series/5.14-rhel9.1.series +++ b/lustre/kernel_patches/series/5.14-rhel9.1.series @@ -1,2 +1,3 @@ block-integrity-allow-optional-integrity-functions-rhel9.1.patch block-pass-bio-into-integrity_processing_fn-rhel9.patch +block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel9.patch diff --git a/lustre/kernel_patches/series/5.14-rhel9.2.series b/lustre/kernel_patches/series/5.14-rhel9.2.series index 419e3c4..2e2dbb7 100644 --- a/lustre/kernel_patches/series/5.14-rhel9.2.series +++ b/lustre/kernel_patches/series/5.14-rhel9.2.series @@ -1,2 +1,3 @@ block-integrity-allow-optional-integrity-functions-rhel9.1.patch block-pass-bio-into-integrity_processing_fn-rhel9.patch +block-add-SB_I_STABLE_WRITES-to-bdev-sb-flag-rhel9.patch