diff options
Diffstat (limited to 'mkfs')
-rw-r--r-- | mkfs/mkfs.c | 3 | ||||
-rw-r--r-- | mkfs/mkfs.h | 1 | ||||
-rw-r--r-- | mkfs/options.c | 11 |
3 files changed, 13 insertions, 2 deletions
diff --git a/mkfs/mkfs.c b/mkfs/mkfs.c index 8b8ecc3..f0d1e73 100644 --- a/mkfs/mkfs.c +++ b/mkfs/mkfs.c @@ -78,6 +78,9 @@ static int read_fstree(fstree_t *fs, options_t *opt) if (opt->keep_time) flags |= DIR_SCAN_KEEP_TIME; + if (opt->one_filesystem) + flags |= DIR_SCAN_ONE_FILESYSTEM; + return fstree_from_dir(fs, opt->packdir, flags); } diff --git a/mkfs/mkfs.h b/mkfs/mkfs.h index e6e1517..c7c327c 100644 --- a/mkfs/mkfs.h +++ b/mkfs/mkfs.h @@ -36,6 +36,7 @@ typedef struct { int blksz; int devblksz; bool keep_time; + bool one_filesystem; bool exportable; bool quiet; const char *infile; diff --git a/mkfs/options.c b/mkfs/options.c index 471844f..01727fa 100644 --- a/mkfs/options.c +++ b/mkfs/options.c @@ -15,6 +15,7 @@ static struct option long_opts[] = { { "pack-file", required_argument, NULL, 'F' }, { "pack-dir", required_argument, NULL, 'D' }, { "keep-time", required_argument, NULL, 'k' }, + { "one-file-system", no_argument, NULL, 'o' }, { "exportable", no_argument, NULL, 'e' }, { "force", no_argument, NULL, 'f' }, { "quiet", no_argument, NULL, 'q' }, @@ -26,9 +27,9 @@ static struct option long_opts[] = { }; #ifdef WITH_SELINUX -static const char *short_opts = "s:F:D:X:c:b:B:d:kefqhV"; +static const char *short_opts = "s:F:D:X:c:b:B:d:koefqhV"; #else -static const char *short_opts = "F:D:X:c:b:B:d:kefqhV"; +static const char *short_opts = "F:D:X:c:b:B:d:koefqhV"; #endif extern char *__progname; @@ -76,6 +77,8 @@ static const char *help_string = " --keep-time, -k When using --pack-dir only, use the timestamps\n" " from the input files instead of setting\n" " defaults on all input paths.\n" +" --one-file-system, -o When using --pack-dir only, stay in local file\n" +" system and do not cross mount points.\n" " --exportable, -e Generate an export table for NFS support.\n" " --force, -f Overwrite the output file if it exists.\n" " --quiet, -q Do not print out progress reports.\n" @@ -135,6 +138,7 @@ void process_command_line(options_t *opt, int argc, char **argv) opt->blksz = SQFS_DEFAULT_BLOCK_SIZE; opt->devblksz = SQFS_DEVBLK_SIZE; opt->keep_time = false; + opt->one_filesystem = false; opt->exportable = false; opt->quiet = false; opt->infile = NULL; @@ -182,6 +186,9 @@ void process_command_line(options_t *opt, int argc, char **argv) case 'k': opt->keep_time = true; break; + case 'o': + opt->one_filesystem = true; + break; case 'e': opt->exportable = true; break; |