summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/nfs
diff options
context:
space:
mode:
authorjmcp <James.McPherson@Sun.COM>2010-06-10 16:27:13 -0700
committerjmcp <James.McPherson@Sun.COM>2010-06-10 16:27:13 -0700
commitbfbb13c994c87d0453ca6bb826470ec99a909992 (patch)
treeee27888ec698913e010e5b7b7bf487b6ce3f21f6 /usr/src/uts/common/nfs
parent44f92b7dbae22574cbeb46a120d108f45d9e2f29 (diff)
downloadillumos-joyent-bfbb13c994c87d0453ca6bb826470ec99a909992.tar.gz
backout 6930814: causes 6960023
Diffstat (limited to 'usr/src/uts/common/nfs')
-rw-r--r--usr/src/uts/common/nfs/export.h20
-rw-r--r--usr/src/uts/common/nfs/nfs4_idmap_impl.h13
2 files changed, 15 insertions, 18 deletions
diff --git a/usr/src/uts/common/nfs/export.h b/usr/src/uts/common/nfs/export.h
index 56d8e2b0de..5d6072c2f7 100644
--- a/usr/src/uts/common/nfs/export.h
+++ b/usr/src/uts/common/nfs/export.h
@@ -419,13 +419,7 @@ typedef struct treenode {
/* Root of nfs pseudo namespace */
extern treenode_t *ns_root;
-#define EXPTABLESIZE 256
-
-struct exp_hash {
- struct exportinfo *prev; /* ptr to the previous exportinfo */
- struct exportinfo *next; /* ptr to the next exportinfo */
- struct exportinfo **bckt; /* backpointer to the hash bucket */
-};
+#define EXPTABLESIZE 16
/*
* A node associated with an export entry on the
@@ -447,8 +441,7 @@ struct exportinfo {
struct exportdata exi_export;
fsid_t exi_fsid;
struct fid exi_fid;
- struct exp_hash fid_hash;
- struct exp_hash path_hash;
+ struct exportinfo *exi_hash;
struct treenode *exi_tree;
fhandle_t exi_fh;
krwlock_t exi_cache_lock;
@@ -512,7 +505,6 @@ struct exp_visible {
typedef struct exp_visible exp_visible_t;
#define PSEUDO(exi) ((exi)->exi_export.ex_flags & EX_PSEUDO)
-#define EXP_LINKED(exi) ((exi)->fid_hash.bckt != NULL)
#define EQFSID(fsidp1, fsidp2) \
(((fsidp1)->val[0] == (fsidp2)->val[0]) && \
@@ -541,6 +533,7 @@ extern int nfsauth4_access(struct exportinfo *, vnode_t *,
struct svc_req *);
extern int nfsauth4_secinfo_access(struct exportinfo *,
struct svc_req *, int, int);
+extern int nfs_fhhash(fsid_t *, fid_t *);
extern int nfs_fhbcmp(char *, char *, int);
extern int nfs_exportinit(void);
extern void nfs_exportfini(void);
@@ -562,7 +555,8 @@ extern struct exportinfo *nfs_vptoexi(vnode_t *, vnode_t *, cred_t *, int *,
extern int nfs_check_vpexi(vnode_t *, vnode_t *, cred_t *,
struct exportinfo **);
extern void export_link(struct exportinfo *);
-extern void export_unlink(struct exportinfo *);
+extern int export_unlink(fsid_t *, fid_t *, vnode_t *,
+ struct exportinfo **);
extern vnode_t *untraverse(vnode_t *);
extern int vn_is_nfs_reparse(vnode_t *, cred_t *);
extern int client_is_downrev(struct svc_req *);
@@ -579,8 +573,8 @@ extern int nfs_visible_inode(struct exportinfo *, ino64_t, int *);
extern int has_visible(struct exportinfo *, vnode_t *);
extern void free_visible(struct exp_visible *);
extern int nfs_exported(struct exportinfo *, vnode_t *);
-extern struct exportinfo *pseudo_exportfs(vnode_t *, fid_t *,
- struct exp_visible *, struct exportdata *);
+extern int pseudo_exportfs(vnode_t *, struct exp_visible *,
+ struct exportdata *, struct exportinfo **);
extern int vop_fid_pseudo(vnode_t *, fid_t *fidp);
extern int nfs4_vget_pseudo(struct exportinfo *, vnode_t **, fid_t *);
/*
diff --git a/usr/src/uts/common/nfs/nfs4_idmap_impl.h b/usr/src/uts/common/nfs/nfs4_idmap_impl.h
index f0f166688d..344e98213a 100644
--- a/usr/src/uts/common/nfs/nfs4_idmap_impl.h
+++ b/usr/src/uts/common/nfs/nfs4_idmap_impl.h
@@ -2,8 +2,9 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -19,15 +20,17 @@
* CDDL HEADER END
*/
/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
#ifndef _NFS4_IDMAP_IMPL_H
#define _NFS4_IDMAP_IMPL_H
+#pragma ident "%Z%%M% %I% %E% SMI"
+
#include <sys/list.h>
#include <sys/door.h>
-#include <sys/pkp_hash.h>
/*
* This is a private header file. Applications should not directly include
@@ -41,7 +44,7 @@ extern "C" {
/*
* Cache Entry Definitions
*/
-#define NFSID_CACHE_ANCHORS PKP_HASH_SIZE
+#define NFSID_CACHE_ANCHORS 256
typedef struct nfsidmap {
struct nfsidmap *id_chain[2]; /* must be first */