summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/sockfs
diff options
context:
space:
mode:
authorJack Meng <Jack.Meng@Sun.COM>2008-11-22 07:33:57 +0800
committerJack Meng <Jack.Meng@Sun.COM>2008-11-22 07:33:57 +0800
commit6cefaae1e90a413ba01560575bb3998e1a3df40e (patch)
treec749b753f1ee011412736e0a48381d6e5bb58a34 /usr/src/uts/common/fs/sockfs
parent7bc22e45a20f905cdd06bb98c98a5c8be7fd25c0 (diff)
downloadillumos-joyent-6cefaae1e90a413ba01560575bb3998e1a3df40e.tar.gz
PSARC 2008/427 iSCSI Boot
PSARC 2008/640 iSCSI With DHCP 6701045 iSCSI boot on x86 6713364 iscsi needs to support PSARC 2008/337 scsi-self-identifying 6422549 delay nl7c_init() call until after the root is mounted 6751246 dhcp release the lease before sync is committed on iSCSI disk 6763891 device name of the same lun is different by different discovery mode, non MPxIO 6768382 Add dependency on netowrk/physical in local-fs service
Diffstat (limited to 'usr/src/uts/common/fs/sockfs')
-rw-r--r--usr/src/uts/common/fs/sockfs/socksubr.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/sockfs/socksubr.c b/usr/src/uts/common/fs/sockfs/socksubr.c
index d8b69aef5e..33a6841f16 100644
--- a/usr/src/uts/common/fs/sockfs/socksubr.c
+++ b/usr/src/uts/common/fs/sockfs/socksubr.c
@@ -92,7 +92,7 @@ static struct kmem_cache *socktpi_cache, *socktpi_unix_cache;
struct kmem_cache *socktpi_sod_cache;
dev_t sockdev; /* For fsid in getattr */
-
+int sockfs_defer_nl7c_init = 0;
struct sockparams *sphead;
krwlock_t splist_lock;
@@ -107,6 +107,8 @@ extern void nl7c_init(void);
extern int sostr_init();
+extern int modrootloaded;
+
#define ADRSTRLEN (2 * sizeof (void *) + 1)
/*
* kernel structure for passing the sockinfo data back up to the user.
@@ -195,6 +197,11 @@ soconfig(int domain, int type, int protocol,
dprint(0, ("soconfig(%d,%d,%d,%s,%d)\n",
domain, type, protocol, devpath, devpathlen));
+ if (sockfs_defer_nl7c_init) {
+ nl7c_init();
+ sockfs_defer_nl7c_init = 0;
+ }
+
/*
* Look for an existing match.
*/
@@ -769,7 +776,11 @@ sockinit(int fstype, char *name)
mutex_init(&socklist.sl_lock, NULL, MUTEX_DEFAULT, NULL);
sendfile_init();
- nl7c_init();
+ if (!modrootloaded) {
+ sockfs_defer_nl7c_init = 1;
+ } else {
+ nl7c_init();
+ }
return (0);