summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/nfs/rnode4.h
diff options
context:
space:
mode:
authorRobert Thurlow <Robert.Thurlow@Sun.COM>2009-12-09 17:27:22 -0600
committerRobert Thurlow <Robert.Thurlow@Sun.COM>2009-12-09 17:27:22 -0600
commit2f172c55ef76964744bc62b4500ece87f3089b4d (patch)
tree68a197e4eb4d77acf9993e2e3d75c3f3b06f6a86 /usr/src/uts/common/nfs/rnode4.h
parent1dbbbf767041f5cea7771826e2efc21c03bbffda (diff)
downloadillumos-gate-2f172c55ef76964744bc62b4500ece87f3089b4d.tar.gz
6232737 Client should support NFS4ERR_MOVED and fs_locations
6232743 Server should support NFS4ERR_MOVED and fs_locations 6891289 client panick mutex_vector_tryenter with some stress testing
Diffstat (limited to 'usr/src/uts/common/nfs/rnode4.h')
-rw-r--r--usr/src/uts/common/nfs/rnode4.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/usr/src/uts/common/nfs/rnode4.h b/usr/src/uts/common/nfs/rnode4.h
index a8d6c5ac71..61ea044ca5 100644
--- a/usr/src/uts/common/nfs/rnode4.h
+++ b/usr/src/uts/common/nfs/rnode4.h
@@ -41,7 +41,8 @@ extern "C" {
typedef enum nfs4_stub_type {
NFS4_STUB_NONE,
- NFS4_STUB_MIRRORMOUNT
+ NFS4_STUB_MIRRORMOUNT,
+ NFS4_STUB_REFERRAL
} nfs4_stub_type_t;
typedef enum nfs4_access_type {
@@ -333,7 +334,7 @@ typedef struct rnode4 {
/* sv_fsid (servinfo4_t) to see why */
/* stub type was set */
nfs4_stub_type_t r_stub_type;
- /* e.g. mirror-mount */
+ /* e.g. mirror-mount or referral */
uint_t r_inmap; /* to serialize read/write and mmap */
} rnode4_t;
@@ -371,6 +372,7 @@ typedef struct rnode4 {
#define RP_ISSTUB(rp) (((rp)->r_stub_type != NFS4_STUB_NONE))
#define RP_ISSTUB_MIRRORMOUNT(rp) ((rp)->r_stub_type == NFS4_STUB_MIRRORMOUNT)
+#define RP_ISSTUB_REFERRAL(rp) ((rp)->r_stub_type == NFS4_STUB_REFERRAL)
/*
* Open file instances.
@@ -415,6 +417,7 @@ extern vnode_t *makenfs4node_by_fh(nfs4_sharedfh_t *, nfs4_sharedfh_t *,
extern nfs4_opinst_t *r4mkopenlist(struct mntinfo4 *);
extern void r4releopenlist(nfs4_opinst_t *);
+extern int r4find_by_fsid(mntinfo4_t *, fattr4_fsid *);
/* Access cache calls */
extern nfs4_access_type_t nfs4_access_check(rnode4_t *, uint32_t, cred_t *);
@@ -499,6 +502,7 @@ extern rddir4_cache *rddir4_cache_lookup(rnode4_t *, offset_t, int);
extern void rddir4_cache_rele(rnode4_t *, rddir4_cache *);
extern void r4_stub_mirrormount(rnode4_t *);
+extern void r4_stub_referral(rnode4_t *);
extern void r4_stub_none(rnode4_t *);
#ifdef DEBUG