summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/nfs
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2018-07-19 12:19:30 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2018-07-19 12:19:30 +0000
commit75910928a4d405b3b465aa64cec1c6ba9eab8513 (patch)
treec5298dd94ed2665563f3893dccb058a3dc11c406 /usr/src/uts/common/nfs
parentdb2cbbce01c8ea53b138c42594279a7645ac574a (diff)
parente010bda94b034e413b6fe35fd45bca0afaf1a0df (diff)
downloadillumos-joyent-75910928a4d405b3b465aa64cec1c6ba9eab8513.tar.gz
[illumos-gate merge]
commit e010bda94b034e413b6fe35fd45bca0afaf1a0df 9447 NFS unmount is slow commit 5882b622b7e2afa5385d4601dd82f81066f62d67 9660 loader: fix typos in libefi/env.c commit da8e407363328f2eb8ec9dc3b7a276f2b5606179 9662 fpu alignment pragmas broken on newer gcc commit d66a72cfe0bf6d9ab9725f0d0cb1f38dbcc0ac49 9615 loader: cstyle fixes for some common files
Diffstat (limited to 'usr/src/uts/common/nfs')
-rw-r--r--usr/src/uts/common/nfs/nfs4_clnt.h5
-rw-r--r--usr/src/uts/common/nfs/nfs_clnt.h5
-rw-r--r--usr/src/uts/common/nfs/rnode.h2
-rw-r--r--usr/src/uts/common/nfs/rnode4.h8
4 files changed, 14 insertions, 6 deletions
diff --git a/usr/src/uts/common/nfs/nfs4_clnt.h b/usr/src/uts/common/nfs/nfs4_clnt.h
index 8f8cb7d78e..68c810f7c7 100644
--- a/usr/src/uts/common/nfs/nfs4_clnt.h
+++ b/usr/src/uts/common/nfs/nfs4_clnt.h
@@ -1099,6 +1099,11 @@ typedef struct mntinfo4 {
* Referral related info.
*/
int mi_vfs_referral_loop_cnt;
+ /*
+ * List of rnode4_t structures that belongs to this mntinfo4
+ */
+ kmutex_t mi_rnodes_lock; /* protects the mi_rnodes list */
+ list_t mi_rnodes; /* the list */
} mntinfo4_t;
/*
diff --git a/usr/src/uts/common/nfs/nfs_clnt.h b/usr/src/uts/common/nfs/nfs_clnt.h
index ae2948ed12..391640c14c 100644
--- a/usr/src/uts/common/nfs/nfs_clnt.h
+++ b/usr/src/uts/common/nfs/nfs_clnt.h
@@ -428,6 +428,11 @@ typedef struct mntinfo {
* before acquiring any other rnode lock.
*/
kmutex_t mi_remap_lock;
+ /*
+ * List of rnode_t structures that belongs to this mntinfo
+ */
+ kmutex_t mi_rnodes_lock; /* protects the mi_rnodes list */
+ list_t mi_rnodes; /* the list */
} mntinfo_t;
#endif /* _KERNEL */
diff --git a/usr/src/uts/common/nfs/rnode.h b/usr/src/uts/common/nfs/rnode.h
index 33091445c4..a9433b9496 100644
--- a/usr/src/uts/common/nfs/rnode.h
+++ b/usr/src/uts/common/nfs/rnode.h
@@ -303,6 +303,8 @@ typedef struct rnode {
kthread_t *r_serial; /* id of purging thread */
list_t r_indelmap; /* list of delmap callers */
uint_t r_inmap; /* to serialize read/write and mmap */
+ list_node_t r_mi_link; /* linkage into list of rnodes for */
+ /* this mntinfo */
} rnode_t;
#endif /* _KERNEL */
diff --git a/usr/src/uts/common/nfs/rnode4.h b/usr/src/uts/common/nfs/rnode4.h
index 0e0090e24d..ca2e38c8e8 100644
--- a/usr/src/uts/common/nfs/rnode4.h
+++ b/usr/src/uts/common/nfs/rnode4.h
@@ -336,6 +336,8 @@ typedef struct rnode4 {
nfs4_stub_type_t r_stub_type;
/* e.g. mirror-mount or referral */
uint_t r_inmap; /* to serialize read/write and mmap */
+ list_node_t r_mi_link; /* linkage into list of rnodes for */
+ /* this mntinfo */
} rnode4_t;
#define r_vnode r_svnode.sv_r_vnode
@@ -393,12 +395,6 @@ extern long nrnode;
#define NFS4_INITIAL_DELAY_INTERVAL 1
#define NFS4_MAX_DELAY_INTERVAL 20
-/* Used for check_rtable4 */
-#define NFSV4_RTABLE4_OK 0
-#define NFSV4_RTABLE4_NOT_FREE_LIST 1
-#define NFSV4_RTABLE4_DIRTY_PAGES 2
-#define NFSV4_RTABLE4_POS_R_COUNT 3
-
extern rnode4_t *r4find(r4hashq_t *, nfs4_sharedfh_t *, struct vfs *);
extern rnode4_t *r4find_unlocked(nfs4_sharedfh_t *, struct vfs *);
extern void r4flush(struct vfs *, cred_t *);