summaryrefslogtreecommitdiff
path: root/usr/src/cmd/devfsadm
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2016-02-04 18:08:21 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2016-02-04 18:08:21 +0000
commitf13e7d60575604d9d02fd12ce871729dc2e73b7d (patch)
tree491a8b819b85c49cd27f1915beb529512be02862 /usr/src/cmd/devfsadm
parent0e08080c57a8dbbbf4eeb790edc912a174042c58 (diff)
downloadillumos-joyent-f13e7d60575604d9d02fd12ce871729dc2e73b7d.tar.gz
OS-5070 missing autofs dev ioctls - automounter restart recovery doesn't work
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Diffstat (limited to 'usr/src/cmd/devfsadm')
-rw-r--r--usr/src/cmd/devfsadm/i386/lx_link_i386.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/usr/src/cmd/devfsadm/i386/lx_link_i386.c b/usr/src/cmd/devfsadm/i386/lx_link_i386.c
index 855f4f7383..4f8a17b655 100644
--- a/usr/src/cmd/devfsadm/i386/lx_link_i386.c
+++ b/usr/src/cmd/devfsadm/i386/lx_link_i386.c
@@ -22,18 +22,19 @@
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright 2016 Joyent, Inc.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <devfsadm.h>
#include <strings.h>
#include <stdio.h>
#include <sys/lx_ptm.h>
#include <sys/lx_audio.h>
+#include <sys/lx_autofs.h>
static int lx_ptm(di_minor_t minor, di_node_t node);
static int lx_audio(di_minor_t minor, di_node_t node);
+static int lx_autofs(di_minor_t minor, di_node_t node);
static int lx_systrace(di_minor_t minor, di_node_t node);
static devfsadm_create_t lx_create_cbt[] = {
@@ -41,6 +42,8 @@ static devfsadm_create_t lx_create_cbt[] = {
TYPE_EXACT | DRV_EXACT, ILEVEL_0, lx_ptm },
{ "pseudo", "ddi_pseudo", LX_AUDIO_DRV,
TYPE_EXACT | DRV_EXACT, ILEVEL_0, lx_audio },
+ { "pseudo", "ddi_pseudo", LX_AUTOFS_NAME,
+ TYPE_EXACT | DRV_EXACT, ILEVEL_0, lx_autofs },
{ "pseudo", "ddi_pseudo", "lx_systrace",
TYPE_EXACT | DRV_EXACT, ILEVEL_0, lx_systrace },
};
@@ -74,6 +77,17 @@ lx_audio(di_minor_t minor, di_node_t node)
}
static int
+lx_autofs(di_minor_t minor, di_node_t node)
+{
+ char *mname = di_minor_name(minor);
+
+ if (strcmp(LX_AUTOFS_MINORNAME, mname) == 0)
+ (void) devfsadm_mklink("brand/lx/autofs", node, minor, 0);
+
+ return (DEVFSADM_CONTINUE);
+}
+
+static int
lx_systrace(di_minor_t minor, di_node_t node)
{
char *mname = di_minor_name(minor);