Module Name: src
Committed By: martin
Date: Sun Jan 30 11:58:29 UTC 2022
Modified Files:
src/usr.sbin/sysinst: defs.h gpt.c target.c
Log Message:
Do not defer wedge deletions when we have nothing mounted.
Define and use a constant for maximum disk name length.
To generate a diff of this commit:
cvs rdiff -u -r1.78 -r1.79 src/usr.sbin/sysinst/defs.h
cvs rdiff -u -r1.27 -r1.28 src/usr.sbin/sysinst/gpt.c
cvs rdiff -u -r1.16 -r1.17 src/usr.sbin/sysinst/target.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/sysinst/defs.h
diff -u src/usr.sbin/sysinst/defs.h:1.78 src/usr.sbin/sysinst/defs.h:1.79
--- src/usr.sbin/sysinst/defs.h:1.78 Sat Jan 29 16:01:16 2022
+++ src/usr.sbin/sysinst/defs.h Sun Jan 30 11:58:29 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: defs.h,v 1.78 2022/01/29 16:01:16 martin Exp $ */
+/* $NetBSD: defs.h,v 1.79 2022/01/30 11:58:29 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -59,6 +59,7 @@ const char *getfslabelname(uint, uint);
#define STRSIZE 255
#define MENUSTRSIZE 80
#define SSTRSIZE 30
+#define DISKNAMESIZE 24 /* max(strlen("/dev/rsd22c")) */
/* these are used for different alignment defaults */
#define HUGE_DISK_SIZE (daddr_t)(128 * (GIG / 512))
Index: src/usr.sbin/sysinst/gpt.c
diff -u src/usr.sbin/sysinst/gpt.c:1.27 src/usr.sbin/sysinst/gpt.c:1.28
--- src/usr.sbin/sysinst/gpt.c:1.27 Sat Jan 29 15:32:49 2022
+++ src/usr.sbin/sysinst/gpt.c Sun Jan 30 11:58:29 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: gpt.c,v 1.27 2022/01/29 15:32:49 martin Exp $ */
+/* $NetBSD: gpt.c,v 1.28 2022/01/30 11:58:29 martin Exp $ */
/*
* Copyright 2018 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@ bool gpt_parts_check(void); /* check for
#define GUID_STR_LEN 40
#define GPT_PTYPE_ALLOC 32 /* initial type array allocation, should be >
* gpt type -l | wc -l */
-#define GPT_DEV_LEN 16 /* dkNN */
+#define GPT_DEV_LEN DISKNAMESIZE /* dkNN */
#define GPT_PARTS_PER_SEC 4 /* a 512 byte sector holds 4 entries */
#define GPT_DEFAULT_MAX_PARTS 128
Index: src/usr.sbin/sysinst/target.c
diff -u src/usr.sbin/sysinst/target.c:1.16 src/usr.sbin/sysinst/target.c:1.17
--- src/usr.sbin/sysinst/target.c:1.16 Sat Jan 29 15:32:49 2022
+++ src/usr.sbin/sysinst/target.c Sun Jan 30 11:58:29 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: target.c,v 1.16 2022/01/29 15:32:49 martin Exp $ */
+/* $NetBSD: target.c,v 1.17 2022/01/30 11:58:29 martin Exp $ */
/*
* Copyright 1997 Jonathan Stone
@@ -71,7 +71,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: target.c,v 1.16 2022/01/29 15:32:49 martin Exp $");
+__RCSID("$NetBSD: target.c,v 1.17 2022/01/30 11:58:29 martin Exp $");
#endif
/*
@@ -123,7 +123,7 @@ struct unwind_mount {
/* Record a wedge for later deletion after all file systems have been unmounted */
struct umount_delwedge {
struct umount_delwedge *next;
- char disk[MAXPATHLEN], wedge[MAXPATHLEN];
+ char disk[DISKNAMESIZE], wedge[DISKNAMESIZE];
};
struct umount_delwedge *post_umount_dwlist = NULL;
@@ -549,6 +549,12 @@ register_post_umount_delwedge(const char
{
struct umount_delwedge *dw;
+ if (unwind_mountlist == NULL) {
+ /* we have nothing mounted, can delete it right now */
+ delete_wedge(disk, wedge);
+ return;
+ }
+
dw = calloc(1, sizeof(*dw));
dw->next = post_umount_dwlist;
strlcpy(dw->disk, disk, sizeof(dw->disk));