From 64d1dd9da0c80691a562dad932dbca37bcfd6195 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Thu, 11 Oct 2007 09:49:54 +0000 Subject: If / block device as in /etc/fstab does not exist, use /dev/root if it's available in checkroot, #171593. --- src/fstabinfo.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/fstabinfo.c b/src/fstabinfo.c index 23b5c42a..4d927f71 100644 --- a/src/fstabinfo.c +++ b/src/fstabinfo.c @@ -24,7 +24,7 @@ #define GET_ENT getmntent (fp) #define GET_ENT_FILE(_name) getmntfile (_name) #define END_ENT endmntent (fp) -#define ENT_DEVICE(_ent) ent->mnt_fsname +#define ENT_BLOCKDEVICE(_ent) ent->mnt_fsname #define ENT_FILE(_ent) ent->mnt_dir #define ENT_TYPE(_ent) ent->mnt_type #define ENT_OPTS(_ent) ent->mnt_opts @@ -36,7 +36,7 @@ #define GET_ENT getfsent () #define GET_ENT_FILE(_name) getfsfile (_name) #define END_ENT endfsent () -#define ENT_DEVICE(_ent) ent->fs_spec +#define ENT_BLOCKDEVICE(_ent) ent->fs_spec #define ENT_TYPE(_ent) ent->fs_vfstype #define ENT_FILE(_ent) ent->fs_file #define ENT_OPTS(_ent) ent->fs_mntops @@ -65,17 +65,19 @@ static struct mntent *getmntfile (const char *file) #endif #include "_usage.h" -#define getoptstring "mop:t:" getoptstring_COMMON +#define getoptstring "bmop:t:" getoptstring_COMMON static struct option longopts[] = { - { "options", 0, NULL, 'o'}, - { "passno", 1, NULL, 'p'}, - { "fstype", 1, NULL, 't'}, + { "blockdevice", 0, NULL, 'b' }, + { "options", 0, NULL, 'o' }, + { "passno", 1, NULL, 'p' }, + { "fstype", 1, NULL, 't' }, longopts_COMMON }; static const char * const longopts_help[] = { + "Extract the block device", "Extract the options field", - "Extract the pass number field", - "Extract the file system type", + "Extract or query the pass number field", + "List entries with matching file system type", longopts_help_COMMON }; #include "_usage.c" @@ -83,6 +85,7 @@ static const char * const longopts_help[] = { #define OUTPUT_FILE (1 << 1) #define OUTPUT_OPTIONS (1 << 3) #define OUTPUT_PASSNO (1 << 4) +#define OUTPUT_BLOCKDEV (1 << 5) int fstabinfo (int argc, char **argv) { @@ -105,6 +108,9 @@ int fstabinfo (int argc, char **argv) longopts, (int *) 0)) != -1) { switch (opt) { + case 'b': + output = OUTPUT_BLOCKDEV; + break; case 'o': output = OUTPUT_OPTIONS; break; @@ -177,6 +183,9 @@ int fstabinfo (int argc, char **argv) continue; switch (output) { + case OUTPUT_BLOCKDEV: + printf ("%s\n", ENT_BLOCKDEVICE (ent)); + break; case OUTPUT_OPTIONS: printf ("%s\n", ENT_OPTS (ent)); break; -- cgit v1.2.3