From fc50a25b0b1ebde10832b7b3f4e4a149606f308a Mon Sep 17 00:00:00 2001 From: liuh Date: Wed, 24 Jul 2024 09:31:11 +0800 Subject: [PATCH] xfs_scrub: fix reporting if we can't open raw block devices --- ...porting-if-we-can-t-open-raw-block-d.patch | 60 +++++++++++++++++++ xfsprogs.spec | 6 +- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 0058-xfs_scrub-fix-reporting-if-we-can-t-open-raw-block-d.patch diff --git a/0058-xfs_scrub-fix-reporting-if-we-can-t-open-raw-block-d.patch b/0058-xfs_scrub-fix-reporting-if-we-can-t-open-raw-block-d.patch new file mode 100644 index 0000000..dca4e3c --- /dev/null +++ b/0058-xfs_scrub-fix-reporting-if-we-can-t-open-raw-block-d.patch @@ -0,0 +1,60 @@ +From d6febe33bf060d37c37f689c5b7a6c58af6afc97 Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" +Date: Mon, 28 Feb 2022 16:47:43 -0500 +Subject: xfs_scrub: fix reporting if we can't open raw block devices + +The error checking logic for opening the data, log, and rt device is +totally broken. Fix this. + +Signed-off-by: Darrick J. Wong +Reviewed-by: Christoph Hellwig +Signed-off-by: Eric Sandeen +--- + scrub/phase1.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git a/scrub/phase1.c b/scrub/phase1.c +index 4f02824..fd1050c 100644 +--- a/scrub/phase1.c ++++ b/scrub/phase1.c +@@ -170,9 +170,9 @@ _("Unable to find realtime device path.")); + + /* Open the raw devices. */ + ctx->datadev = disk_open(ctx->fsinfo.fs_name); +- if (error) { +- str_errno(ctx, ctx->fsinfo.fs_name); +- return error; ++ if (!ctx->datadev) { ++ str_error(ctx, ctx->mntpoint, _("Unable to open data device.")); ++ return ECANCELED; + } + + ctx->nr_io_threads = disk_heads(ctx->datadev); +@@ -184,16 +184,18 @@ _("Unable to find realtime device path.")); + + if (ctx->fsinfo.fs_log) { + ctx->logdev = disk_open(ctx->fsinfo.fs_log); +- if (error) { +- str_errno(ctx, ctx->fsinfo.fs_name); +- return error; ++ if (!ctx->logdev) { ++ str_error(ctx, ctx->mntpoint, ++ _("Unable to open external log device.")); ++ return ECANCELED; + } + } + if (ctx->fsinfo.fs_rt) { + ctx->rtdev = disk_open(ctx->fsinfo.fs_rt); +- if (error) { +- str_errno(ctx, ctx->fsinfo.fs_name); +- return error; ++ if (!ctx->rtdev) { ++ str_error(ctx, ctx->mntpoint, ++ _("Unable to open realtime device.")); ++ return ECANCELED; + } + } + +-- +2.33.0 + diff --git a/xfsprogs.spec b/xfsprogs.spec index 6d6cc17..6fbebce 100644 --- a/xfsprogs.spec +++ b/xfsprogs.spec @@ -1,6 +1,6 @@ Name: xfsprogs Version: 5.14.1 -Release: 16 +Release: 17 Summary: Administration and debugging tools for the XFS file system License: GPL+ and LGPLv2+ URL: https://xfs.wiki.kernel.org @@ -76,6 +76,7 @@ Patch54: 0054-mkfs-Add-atomic-writes-suppport.patch Patch55: 0055-xfs_io-Support-statx-for-atomic-writes.patch Patch56: 0056-mkfs-Ensure-extsize-aligned-to-stripe-unit-for-force.patch Patch57: 0057-xfs_io-Implement-lsattr-and-chattr-support-for-atomi.patch +Patch58: 0058-xfs_scrub-fix-reporting-if-we-can-t-open-raw-block-d.patch %description xfsprogs are the userspace utilities that manage XFS filesystems. @@ -160,6 +161,9 @@ rm -rf %{buildroot}%{_datadir}/doc/xfsprogs/ %changelog +* Wed Jul 24 2024 liuh - 5.14.1-17 +- xfs_scrub: fix reporting if we can't open raw block devices + * Mon May 20 2024 zhangjian - 5.14.1-16 - support atomic write -- Gitee