57 lines
1.9 KiB
Diff
57 lines
1.9 KiB
Diff
|
From 2e673aac06d661038001286fd389d1b45c511c66 Mon Sep 17 00:00:00 2001
|
||
|
From: Natanael Copa <ncopa@alpinelinux.org>
|
||
|
Date: Tue, 28 Nov 2017 13:23:17 +0100
|
||
|
Subject: [PATCH] fsck: resolve LABEL=.../UUID=... spec to device
|
||
|
|
||
|
---
|
||
|
e2fsprogs/fsck.c | 10 +++++-----
|
||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c
|
||
|
index f5aa3dbe4..e2edc9747 100644
|
||
|
--- a/e2fsprogs/fsck.c
|
||
|
+++ b/e2fsprogs/fsck.c
|
||
|
@@ -60,6 +60,7 @@
|
||
|
//usage: "\n -t TYPE List of filesystem types to check"
|
||
|
|
||
|
#include "libbb.h"
|
||
|
+#include "volume_id.h"
|
||
|
#include "common_bufsiz.h"
|
||
|
|
||
|
/* "progress indicator" code is somewhat buggy and ext[23] specific.
|
||
|
@@ -524,12 +525,13 @@ static int wait_many(int flags)
|
||
|
* Execute a particular fsck program, and link it into the list of
|
||
|
* child processes we are waiting for.
|
||
|
*/
|
||
|
-static void execute(const char *type, const char *device,
|
||
|
+static void execute(const char *type, const char *spec,
|
||
|
const char *mntpt /*, int interactive */)
|
||
|
{
|
||
|
int i;
|
||
|
struct fsck_instance *inst;
|
||
|
pid_t pid;
|
||
|
+ char *device = (char *)spec;
|
||
|
|
||
|
G.args[0] = xasprintf("fsck.%s", type);
|
||
|
|
||
|
@@ -544,7 +546,8 @@ static void execute(const char *type, const char *device,
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
- G.args[G.num_args - 2] = (char*)device;
|
||
|
+ resolve_mount_spec(&device);
|
||
|
+ G.args[G.num_args - 2] = device;
|
||
|
/* G.args[G.num_args - 1] = NULL; - already is */
|
||
|
|
||
|
if (G.verbose || G.noexecute) {
|
||
|
@@ -973,9 +976,6 @@ int fsck_main(int argc UNUSED_PARAM, char **argv)
|
||
|
|
||
|
/* "/dev/blk" or "/path" or "UUID=xxx" or "LABEL=xxx" */
|
||
|
if ((arg[0] == '/' && !opts_for_fsck) || strchr(arg, '=')) {
|
||
|
-// FIXME: must check that arg is a blkdev, or resolve
|
||
|
-// "/path", "UUID=xxx" or "LABEL=xxx" into block device name
|
||
|
-// ("UUID=xxx"/"LABEL=xxx" can probably shifted to fsck.auto duties)
|
||
|
devices = xrealloc_vector(devices, 2, num_devices);
|
||
|
devices[num_devices++] = arg;
|
||
|
continue;
|