Module Name: src Committed By: christos Date: Sun Feb 18 16:58:51 UTC 2024
Modified Files: src/usr.sbin/makefs: msdos.c Log Message: PR/57945: Jan-Benedict Glaw: makefs: msdos filesystems with label not reproducible. When we specify a label, the volume label is used to create the root dir and it gets stamped by the timestamp. We were trying to set the timestamp in the fs-specific part of the options parsing which did not work since the method was called only for fs_specific options. Move setting of the timestamp just before we create the fs, where we reconcile the rest of the options. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/usr.sbin/makefs/msdos.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/makefs/msdos.c diff -u src/usr.sbin/makefs/msdos.c:1.23 src/usr.sbin/makefs/msdos.c:1.24 --- src/usr.sbin/makefs/msdos.c:1.23 Thu Dec 28 07:13:55 2023 +++ src/usr.sbin/makefs/msdos.c Sun Feb 18 11:58:51 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: msdos.c,v 1.23 2023/12/28 12:13:55 tsutsui Exp $ */ +/* $NetBSD: msdos.c,v 1.24 2024/02/18 16:58:51 christos Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(__lint) -__RCSID("$NetBSD: msdos.c,v 1.23 2023/12/28 12:13:55 tsutsui Exp $"); +__RCSID("$NetBSD: msdos.c,v 1.24 2024/02/18 16:58:51 christos Exp $"); #endif /* !__lint */ #include <sys/param.h> @@ -121,7 +121,7 @@ msdos_parse_opts(const char *option, fsi assert(msdos_opt != NULL); if (debug & DEBUG_FS_PARSE_OPTS) - printf("msdos_parse_opts: got `%s'\n", option); + printf("%s: got `%s'\n", __func__, option); rv = set_option(msdos_options, option, NULL, 0); if (rv == -1) @@ -134,10 +134,6 @@ msdos_parse_opts(const char *option, fsi else if (strcmp(msdos_options[rv].name, "hidden_sectors") == 0) msdos_opt->hidden_sectors_set = 1; - if (stampst.st_ino) { - msdos_opt->timestamp_set = 1; - msdos_opt->timestamp = stampst.st_mtime; - } return 1; } @@ -172,6 +168,10 @@ msdos_makefs(const char *image, const ch "!= -o bytes_per_sector %u", fsopts->sectorsize, msdos_opt->options.bytes_per_sector); } + if (stampst.st_ino) { + msdos_opt->options.timestamp_set = 1; + msdos_opt->options.timestamp = stampst.st_mtime; + } /* create image */ printf("Creating `%s'\n", image);