Module Name: src Committed By: martin Date: Tue Jan 3 18:22:09 UTC 2023
Modified Files: src/sbin/fsck [netbsd-9]: partutil.c Log Message: Pull up following revision(s) (requested by hannken in ticket #1560): sbin/fsck/partutil.c: revision 1.18 Change getdiskinfo() to no longer infer the partition from the device name. Since 2016-06-16 we create disk devices "<type><<unit>" as an alias for "<type><<unit><part>" where "<part>" is the raw partition. These devices are treated as invalid partitions and a zero geometry is returned. Take the partition from "st_rdev" instead. Fix for PR kern/57134: st_size of stat on vnd raw partition sometimes is 0, causing newfs to fail To generate a diff of this commit: cvs rdiff -u -r1.15.18.2 -r1.15.18.3 src/sbin/fsck/partutil.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/fsck/partutil.c diff -u src/sbin/fsck/partutil.c:1.15.18.2 src/sbin/fsck/partutil.c:1.15.18.3 --- src/sbin/fsck/partutil.c:1.15.18.2 Sat Jan 9 19:30:14 2021 +++ src/sbin/fsck/partutil.c Tue Jan 3 18:22:09 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: partutil.c,v 1.15.18.2 2021/01/09 19:30:14 martin Exp $ */ +/* $NetBSD: partutil.c,v 1.15.18.3 2023/01/03 18:22:09 martin Exp $ */ /*- * Copyright (c) 2006 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: partutil.c,v 1.15.18.2 2021/01/09 19:30:14 martin Exp $"); +__RCSID("$NetBSD: partutil.c,v 1.15.18.3 2023/01/03 18:22:09 martin Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -155,9 +155,8 @@ getdiskinfo(const char *s, int fd, const if (stat(s, &sb) == -1) return 0; - ptn = strchr(s, '\0')[-1] - 'a'; - if ((unsigned)ptn >= lp->d_npartitions || - (devminor_t)ptn != DISKPART(sb.st_rdev)) + ptn = DISKPART(sb.st_rdev); + if (ptn < 0 || ptn >= lp->d_npartitions) return 0; pp = &lp->d_partitions[ptn];