Print this page
Fix NFS design problems re. multiple zone keys
Make NFS server zone-specific data all have the same lifetime
Fix rfs4_clean_state_exi
Fix exi_cache_reclaim
Fix mistakes in zone keys work
More fixes re. exi_zoneid and exi_tree
(danmcd -> Keep some ASSERT()s around for readability.)
@@ -158,11 +158,11 @@
}
srv_deleg_policy_t
nfs4_get_deleg_policy()
{
- nfs4_srv_t *nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+ nfs4_srv_t *nsrv4 = nfs4_get_srv();
return (nsrv4->nfs4_deleg_policy);
}
/*
@@ -1268,11 +1268,11 @@
int no_delegation;
ASSERT(rfs4_dbe_islocked(sp->rs_dbe));
ASSERT(rfs4_dbe_islocked(fp->rf_dbe));
- nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+ nsrv4 = nfs4_get_srv();
/* Is the server even providing delegations? */
if (nsrv4->nfs4_deleg_policy == SRV_NEVER_DELEGATE || dreq == DELEG_NONE)
return (NULL);
@@ -1447,11 +1447,11 @@
rfs4_check_delegated_byfp(int mode, rfs4_file_t *fp,
bool_t trunc, bool_t do_delay, bool_t is_rm, clientid4 *cp)
{
rfs4_deleg_state_t *dsp;
- nfs4_srv_t *nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+ nfs4_srv_t *nsrv4 = nfs4_get_srv();
/* Is delegation enabled? */
if (nsrv4->nfs4_deleg_policy == SRV_NEVER_DELEGATE)
return (FALSE);
@@ -1520,11 +1520,11 @@
nfs4_srv_t *nsrv4;
rfs4_file_t *fp;
bool_t create = FALSE;
bool_t rc = FALSE;
- nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+ nsrv4 = nfs4_get_srv();
rfs4_hold_deleg_policy(nsrv4);
/* Is delegation enabled? */
if (nsrv4->nfs4_deleg_policy != SRV_NEVER_DELEGATE) {
fp = rfs4_findfile(vp, NULL, &create);
@@ -1546,11 +1546,11 @@
* or a rename is in progress.
*/
void
rfs4_clear_dont_grant(rfs4_file_t *fp)
{
- nfs4_srv_t *nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+ nfs4_srv_t *nsrv4 = nfs4_get_srv();
if (nsrv4->nfs4_deleg_policy == SRV_NEVER_DELEGATE)
return;
rfs4_dbe_lock(fp->rf_dbe);
ASSERT(fp->rf_dinfo.rd_hold_grant > 0);
@@ -1886,11 +1886,11 @@
void
rfs4_disable_delegation(void)
{
nfs4_srv_t *nsrv4;
- nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+ nsrv4 = nfs4_get_srv();
mutex_enter(&nsrv4->deleg_lock);
rfs4_deleg_disabled++;
mutex_exit(&nsrv4->deleg_lock);
}
@@ -1897,11 +1897,11 @@
void
rfs4_enable_delegation(void)
{
nfs4_srv_t *nsrv4;
- nsrv4 = zone_getspecific(rfs4_zone_key, curzone);
+ nsrv4 = nfs4_get_srv();
mutex_enter(&nsrv4->deleg_lock);
ASSERT(rfs4_deleg_disabled > 0);
rfs4_deleg_disabled--;
mutex_exit(&nsrv4->deleg_lock);
}