Module Name: src Committed By: mlelstv Date: Tue Nov 4 07:51:55 UTC 2014
Modified Files: src/sys/dev: dksubr.c ld.c vnd.c src/sys/dev/ata: wd.c src/sys/dev/raidframe: rf_netbsdkintf.c src/sys/dev/scsipi: sd.c Log Message: support DIOCMWEDGES ioctl. To generate a diff of this commit: cvs rdiff -u -r1.53 -r1.54 src/sys/dev/dksubr.c cvs rdiff -u -r1.77 -r1.78 src/sys/dev/ld.c cvs rdiff -u -r1.233 -r1.234 src/sys/dev/vnd.c cvs rdiff -u -r1.414 -r1.415 src/sys/dev/ata/wd.c cvs rdiff -u -r1.314 -r1.315 src/sys/dev/raidframe/rf_netbsdkintf.c cvs rdiff -u -r1.309 -r1.310 src/sys/dev/scsipi/sd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/dksubr.c diff -u src/sys/dev/dksubr.c:1.53 src/sys/dev/dksubr.c:1.54 --- src/sys/dev/dksubr.c:1.53 Sat Oct 11 12:36:25 2014 +++ src/sys/dev/dksubr.c Tue Nov 4 07:51:54 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: dksubr.c,v 1.53 2014/10/11 12:36:25 mlelstv Exp $ */ +/* $NetBSD: dksubr.c,v 1.54 2014/11/04 07:51:54 mlelstv Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 1999, 2002, 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dksubr.c,v 1.53 2014/10/11 12:36:25 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dksubr.c,v 1.54 2014/11/04 07:51:54 mlelstv Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -304,6 +304,7 @@ dk_ioctl(struct dk_intf *di, struct dk_s case DIOCAWEDGE: case DIOCDWEDGE: case DIOCLWEDGES: + case DIOCMWEDGES: case DIOCCACHESYNC: #ifdef __HAVE_OLD_DISKLABEL case ODIOCGDINFO: @@ -433,6 +434,15 @@ dk_ioctl(struct dk_intf *di, struct dk_s return (dkwedge_list(&dksc->sc_dkdev, dkwl, l)); } + case DIOCMWEDGES: + { + if ((flag & FWRITE) == 0) + return (EBADF); + + dkwedge_discover(&dksc->sc_dkdev); + return 0; + } + case DIOCGSTRATEGY: { struct disk_strategy *dks = (void *)data; Index: src/sys/dev/ld.c diff -u src/sys/dev/ld.c:1.77 src/sys/dev/ld.c:1.78 --- src/sys/dev/ld.c:1.77 Sat Oct 11 12:01:27 2014 +++ src/sys/dev/ld.c Tue Nov 4 07:51:54 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ld.c,v 1.77 2014/10/11 12:01:27 mlelstv Exp $ */ +/* $NetBSD: ld.c,v 1.78 2014/11/04 07:51:54 mlelstv Exp $ */ /*- * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ld.c,v 1.77 2014/10/11 12:01:27 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ld.c,v 1.78 2014/11/04 07:51:54 mlelstv Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -555,6 +555,16 @@ ldioctl(dev_t dev, u_long cmd, void *add return (dkwedge_list(&sc->sc_dk, dkwl, l)); } + + case DIOCMWEDGES: + { + if ((flag & FWRITE) == 0) + return (EBADF); + + dkwedge_discover(&sc->sc_dk); + return 0; + } + case DIOCGSTRATEGY: { struct disk_strategy *dks = (void *)addr; Index: src/sys/dev/vnd.c diff -u src/sys/dev/vnd.c:1.233 src/sys/dev/vnd.c:1.234 --- src/sys/dev/vnd.c:1.233 Sat Oct 11 12:01:27 2014 +++ src/sys/dev/vnd.c Tue Nov 4 07:51:54 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: vnd.c,v 1.233 2014/10/11 12:01:27 mlelstv Exp $ */ +/* $NetBSD: vnd.c,v 1.234 2014/11/04 07:51:54 mlelstv Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2008 The NetBSD Foundation, Inc. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.233 2014/10/11 12:01:27 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vnd.c,v 1.234 2014/11/04 07:51:54 mlelstv Exp $"); #if defined(_KERNEL_OPT) #include "opt_vnd.h" @@ -1592,6 +1592,13 @@ unlock_and_exit: return dkwedge_list(&vnd->sc_dkdev, dkwl, l); + case DIOCMWEDGES: + if ((flag & FWRITE) == 0) + return EBADF; + + dkwedge_discover(&vnd->sc_dkdev); + return 0; + default: return ENOTTY; } Index: src/sys/dev/ata/wd.c diff -u src/sys/dev/ata/wd.c:1.414 src/sys/dev/ata/wd.c:1.415 --- src/sys/dev/ata/wd.c:1.414 Sat Oct 11 14:05:11 2014 +++ src/sys/dev/ata/wd.c Tue Nov 4 07:51:55 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: wd.c,v 1.414 2014/10/11 14:05:11 mlelstv Exp $ */ +/* $NetBSD: wd.c,v 1.415 2014/11/04 07:51:55 mlelstv Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved. @@ -54,7 +54,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.414 2014/10/11 14:05:11 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.415 2014/11/04 07:51:55 mlelstv Exp $"); #include "opt_ata.h" @@ -1510,6 +1510,15 @@ wdioctl(dev_t dev, u_long xfer, void *ad return (dkwedge_list(&wd->sc_dk, dkwl, l)); } + case DIOCMWEDGES: + { + if ((flag & FWRITE) == 0) + return (EBADF); + + dkwedge_discover(&wd->sc_dk); + return 0; + } + case DIOCGSTRATEGY: { struct disk_strategy *dks = (void *)addr; Index: src/sys/dev/raidframe/rf_netbsdkintf.c diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.314 src/sys/dev/raidframe/rf_netbsdkintf.c:1.315 --- src/sys/dev/raidframe/rf_netbsdkintf.c:1.314 Sat Oct 11 12:36:25 2014 +++ src/sys/dev/raidframe/rf_netbsdkintf.c Tue Nov 4 07:51:55 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_netbsdkintf.c,v 1.314 2014/10/11 12:36:25 mlelstv Exp $ */ +/* $NetBSD: rf_netbsdkintf.c,v 1.315 2014/11/04 07:51:55 mlelstv Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc. @@ -101,7 +101,7 @@ ***********************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.314 2014/10/11 12:36:25 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.315 2014/11/04 07:51:55 mlelstv Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -1090,6 +1090,7 @@ raidioctl(dev_t dev, u_long cmd, void *d case DIOCWLABEL: case DIOCAWEDGE: case DIOCDWEDGE: + case DIOCMWEDGES: case DIOCSSTRATEGY: if ((flag & FWRITE) == 0) return (EBADF); @@ -1112,6 +1113,7 @@ raidioctl(dev_t dev, u_long cmd, void *d case DIOCAWEDGE: case DIOCDWEDGE: case DIOCLWEDGES: + case DIOCMWEDGES: case DIOCCACHESYNC: case RAIDFRAME_SHUTDOWN: case RAIDFRAME_REWRITEPARITY: @@ -1917,6 +1919,9 @@ raidioctl(dev_t dev, u_long cmd, void *d case DIOCLWEDGES: return dkwedge_list(&rs->sc_dkdev, (struct dkwedge_list *)data, l); + case DIOCMWEDGES: + dkwedge_discover(&rs->sc_dkdev); + return 0; case DIOCCACHESYNC: return rf_sync_component_caches(raidPtr); Index: src/sys/dev/scsipi/sd.c diff -u src/sys/dev/scsipi/sd.c:1.309 src/sys/dev/scsipi/sd.c:1.310 --- src/sys/dev/scsipi/sd.c:1.309 Fri Sep 5 05:30:42 2014 +++ src/sys/dev/scsipi/sd.c Tue Nov 4 07:51:55 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sd.c,v 1.309 2014/09/05 05:30:42 matt Exp $ */ +/* $NetBSD: sd.c,v 1.310 2014/11/04 07:51:55 mlelstv Exp $ */ /*- * Copyright (c) 1998, 2003, 2004 The NetBSD Foundation, Inc. @@ -47,7 +47,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sd.c,v 1.309 2014/09/05 05:30:42 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sd.c,v 1.310 2014/11/04 07:51:55 mlelstv Exp $"); #include "opt_scsi.h" @@ -1256,6 +1256,15 @@ sdioctl(dev_t dev, u_long cmd, void *add return (dkwedge_list(&sd->sc_dk, dkwl, l)); } + case DIOCMWEDGES: + { + if ((flag & FWRITE) == 0) + return (EBADF); + + dkwedge_discover(&sd->sc_dk); + return 0; + } + case DIOCGSTRATEGY: { struct disk_strategy *dks = addr;