aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/makefs/ffs.c3
-rw-r--r--usr.sbin/makefs/ffs.h4
-rw-r--r--usr.sbin/makefs/ffs/mkfs.c4
-rw-r--r--usr.sbin/makefs/makefs.82
4 files changed, 12 insertions, 1 deletions
diff --git a/usr.sbin/makefs/ffs.c b/usr.sbin/makefs/ffs.c
index f833cf545daf..26843b632a25 100644
--- a/usr.sbin/makefs/ffs.c
+++ b/usr.sbin/makefs/ffs.c
@@ -236,6 +236,9 @@ ffs_parse_opts(const char *option, fsinfo_t *fsopts)
goto leave_ffs_parse_opts;
}
rv = 1;
+ } else if (strcmp(var, "label") == 0) {
+ strlcpy(ffs_opts->label, val, sizeof(ffs_opts->label));
+ rv = 1;
} else
rv = set_option(ffs_options, var, val);
diff --git a/usr.sbin/makefs/ffs.h b/usr.sbin/makefs/ffs.h
index 42611a43350a..65cfbd041321 100644
--- a/usr.sbin/makefs/ffs.h
+++ b/usr.sbin/makefs/ffs.h
@@ -40,7 +40,11 @@
#ifndef _FFS_H
#define _FFS_H
+#include <ufs/ufs/dinode.h>
+#include <ufs/ffs/fs.h>
+
typedef struct {
+ char label[MAXVOLLEN]; /* volume name/label */
int bsize; /* block size */
int fsize; /* fragment size */
int cpg; /* cylinders per group */
diff --git a/usr.sbin/makefs/ffs/mkfs.c b/usr.sbin/makefs/ffs/mkfs.c
index 924ab6cbd661..f99ecab503ab 100644
--- a/usr.sbin/makefs/ffs/mkfs.c
+++ b/usr.sbin/makefs/ffs/mkfs.c
@@ -139,7 +139,9 @@ ffs_mkfs(const char *fsys, const fsinfo_t *fsopts)
avgfpdir = ffs_opts->avgfpdir;
bbsize = BBSIZE;
sbsize = SBLOCKSIZE;
-
+
+ strlcpy(sblock.fs_volname, ffs_opts->label, sizeof(sblock.fs_volname));
+
if (Oflag == 0) {
sblock.fs_old_inodefmt = FS_42INODEFMT;
sblock.fs_maxsymlinklen = 0;
diff --git a/usr.sbin/makefs/makefs.8 b/usr.sbin/makefs/makefs.8
index 9fe5c01c2436..500827b87fdd 100644
--- a/usr.sbin/makefs/makefs.8
+++ b/usr.sbin/makefs/makefs.8
@@ -242,6 +242,8 @@ Block size.
Bytes per inode.
.It Sy fsize
Fragment size.
+.It Sy label
+Label name of the image.
.It Sy maxbpg
Maximum blocks per file in a cylinder group.
.It Sy minfree