Index: ffs.c =================================================================== --- ffs.c (revision 225328) +++ ffs.c (working copy) @@ -236,6 +236,9 @@ ffs_parse_opts(const char *option, fsinfo_t *fsopt 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); Index: ffs.h =================================================================== --- ffs.h (revision 225328) +++ ffs.h (working copy) @@ -40,7 +40,11 @@ #ifndef _FFS_H #define _FFS_H +#include +#include + typedef struct { + char label[MAXVOLLEN]; /* volume name/label */ int bsize; /* block size */ int fsize; /* fragment size */ int cpg; /* cylinders per group */ Index: ffs/mkfs.c =================================================================== --- ffs/mkfs.c (revision 225328) +++ ffs/mkfs.c (working copy) @@ -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;