diff options
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/ata/wd.c | 13 | ||||
| -rw-r--r-- | sys/dev/dksubr.c | 14 | ||||
| -rw-r--r-- | sys/dev/ld.c | 14 | ||||
| -rw-r--r-- | sys/dev/raidframe/rf_netbsdkintf.c | 9 | ||||
| -rw-r--r-- | sys/dev/scsipi/sd.c | 13 | ||||
| -rw-r--r-- | sys/dev/vnd.c | 11 |
6 files changed, 62 insertions, 12 deletions
diff --git a/sys/dev/ata/wd.c b/sys/dev/ata/wd.c index de84d8b04ca..c12eaa66640 100644 --- a/sys/dev/ata/wd.c +++ b/sys/dev/ata/wd.c @@ -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 *addr, int flag, struct lwp *l) 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; diff --git a/sys/dev/dksubr.c b/sys/dev/dksubr.c index 17bd736af57..8bbfbbcf993 100644 --- a/sys/dev/dksubr.c +++ b/sys/dev/dksubr.c @@ -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_softc *dksc, dev_t dev, 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_softc *dksc, dev_t dev, 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; diff --git a/sys/dev/ld.c b/sys/dev/ld.c index 4819390271a..76cef94409d 100644 --- a/sys/dev/ld.c +++ b/sys/dev/ld.c @@ -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 *addr, int32_t flag, struct lwp *l) 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; diff --git a/sys/dev/raidframe/rf_netbsdkintf.c b/sys/dev/raidframe/rf_netbsdkintf.c index 0e592b44b97..e68ef94eaf6 100644 --- a/sys/dev/raidframe/rf_netbsdkintf.c +++ b/sys/dev/raidframe/rf_netbsdkintf.c @@ -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 *data, int flag, struct lwp *l) 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 *data, int flag, struct lwp *l) 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 *data, int flag, struct lwp *l) 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); diff --git a/sys/dev/scsipi/sd.c b/sys/dev/scsipi/sd.c index 28321855e74..aeda3d7641d 100644 --- a/sys/dev/scsipi/sd.c +++ b/sys/dev/scsipi/sd.c @@ -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 *addr, int flag, struct lwp *l) 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; diff --git a/sys/dev/vnd.c b/sys/dev/vnd.c index 3f01f668232..7a03d6b4dbe 100644 --- a/sys/dev/vnd.c +++ b/sys/dev/vnd.c @@ -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; } |
