61 lines
1.7 KiB
Diff
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
|
|
|