Module Name:    src
Committed By:   martin
Date:           Mon Aug 29 15:39:40 UTC 2022

Modified Files:
        src/external/cddl/osnet/dist/lib/libzfs/common [netbsd-9]:
            libzfs_import.c

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #1503):

        external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c: revision 1.7
        external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c: revision 1.6

When collecting zpool devices, skip disks with wedges so that a
concurrent test of a wedge on that disk doesn't fail.

libzfs: Zero DIOCLWEDGES input before ioctl.

Otherwise we ask the kernel to write over whatever random pointer was
in the stack garbage here, when all we wanted was to learn whether
dkwl_nwedges is zero or nonzero.

XXX pullup-9


To generate a diff of this commit:
cvs rdiff -u -r1.4.4.1 -r1.4.4.2 \
    src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c
diff -u src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.4.4.1 src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.4.4.2
--- src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c:1.4.4.1	Tue Aug 20 11:42:35 2019
+++ src/external/cddl/osnet/dist/lib/libzfs/common/libzfs_import.c	Mon Aug 29 15:39:39 2022
@@ -1095,8 +1095,17 @@ zpool_open_func(void *arg)
 	}
 #endif /* __FreeBSD__ */
 #ifdef __NetBSD__
+	struct dkwedge_list dkwl;
 	off_t size;
 
+	/* skip devices with wedges */
+	memset(&dkwl, 0, sizeof(dkwl));
+	if (native_ioctl(fd, DIOCLWEDGES, &dkwl) == 0 &&
+	    dkwl.dkwl_nwedges > 0) {
+		(void) close(fd);
+		return;
+	}
+
 	if (native_ioctl(fd, DIOCGMEDIASIZE, &size) < 0 ||
 	    size < SPA_MINDEVSIZE) {
 		(void) close(fd);

Reply via email to