xfsprogs/0058-xfs_scrub-fix-reporting-if-we-can-t-open-raw-block-d.patch

61 lines
1.7 KiB
Diff

From d6febe33bf060d37c37f689c5b7a6c58af6afc97 Mon Sep 17 00:00:00 2001
From: "Darrick J. Wong" <djwong@kernel.org>
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 <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
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