nfs-ganesha 1.4
Functions | Variables

nfs4_owner.c File Reference

#include <pthread.h>
#include <ctype.h>
#include "log.h"
#include "HashData.h"
#include "HashTable.h"
#include "nfs4.h"
#include "sal_functions.h"
#include "nfs_proto_functions.h"
#include "nfs_core.h"

Go to the source code of this file.

Functions

size_t strnlen (const char *s, size_t maxlen)
 The management of the NFS4 Owner cache.
int display_nfs4_owner_key (hash_buffer_t *pbuff, char *str)
int display_nfs4_owner (state_owner_t *powner, char *str)
int display_nfs4_owner_val (hash_buffer_t *pbuff, char *str)
int compare_nfs4_owner (state_owner_t *powner1, state_owner_t *powner2)
int compare_nfs4_owner_key (hash_buffer_t *buff1, hash_buffer_t *buff2)
uint32_t nfs4_owner_value_hash_func (hash_parameter_t *p_hparam, hash_buffer_t *buffclef)
uint64_t nfs4_owner_rbt_hash_func (hash_parameter_t *p_hparam, hash_buffer_t *buffclef)
void remove_nfs4_owner (state_owner_t *powner, const char *str)
int Init_nfs4_owner (nfs4_owner_parameter_t param)
int nfs4_owner_Set (state_nfs4_owner_name_t *pname, state_owner_t *powner)
int nfs4_owner_Get_Pointer (state_nfs4_owner_name_t *pname, state_owner_t **powner)
void nfs4_owner_PrintAll (void)
void convert_nfs4_open_owner (open_owner4 *pnfsowner, state_nfs4_owner_name_t *pname_owner, clientid4 clientid)
void convert_nfs4_lock_owner (lock_owner4 *pnfsowner, state_nfs4_owner_name_t *pname_owner, clientid4 clientid)
state_owner_tcreate_nfs4_owner (state_nfs4_owner_name_t *pname, nfs_client_id_t *pclientid, state_owner_type_t type, state_owner_t *related_owner, unsigned int init_seqid)
void Process_nfs4_conflict (LOCK4denied *denied, state_owner_t *holder, fsal_lock_param_t *conflict)
void Release_nfs4_denied (LOCK4denied *denied)
void Copy_nfs4_denied (LOCK4denied *denied_dst, LOCK4denied *denied_src)
void Copy_nfs4_state_req (state_owner_t *powner, seqid4 seqid, nfs_argop4 *args, compound_data_t *data, nfs_resop4 *resp, const char *tag)
bool_t Check_nfs4_seqid (state_owner_t *powner, seqid4 seqid, nfs_argop4 *args, compound_data_t *data, nfs_resop4 *resp, const char *tag)
state_status_t get_clientid_owner (clientid4 clientid, state_owner_t **clientid_owner)

Variables

hash_table_tht_nfs4_owner
uint32_t nfs4_owner_counter = 0
pthread_mutex_t nfs4_owner_counter_lock = PTHREAD_MUTEX_INITIALIZER

Function Documentation

bool_t Check_nfs4_seqid ( state_owner_t powner,
seqid4  seqid,
nfs_argop4 args,
compound_data_t data,
nfs_resop4 resp,
const char *  tag 
)

Check_nfs4_seqid: Check NFS4 request for valid seqid for replay, next request, or BAD_SEQID.

Returns TRUE if the request is the next seqid. If the request is a replay, copies the saved response and returns FALSE. Otherwise, sets status to NFS4ERR_BAD_SEQID and returns FALSE.

In either case, on a FALSE return, the caller should send the resulting response back to the client.

Definition at line 714 of file nfs4_owner.c.

int compare_nfs4_owner ( state_owner_t powner1,
state_owner_t powner2 
)

Definition at line 112 of file nfs4_owner.c.

int compare_nfs4_owner_key ( hash_buffer_t buff1,
hash_buffer_t buff2 
)

Definition at line 158 of file nfs4_owner.c.

void convert_nfs4_lock_owner ( lock_owner4 pnfsowner,
state_nfs4_owner_name_t pname_owner,
clientid4  clientid 
)

Definition at line 462 of file nfs4_owner.c.

void convert_nfs4_open_owner ( open_owner4 pnfsowner,
state_nfs4_owner_name_t pname_owner,
clientid4  clientid 
)

Definition at line 441 of file nfs4_owner.c.

void Copy_nfs4_denied ( LOCK4denied denied_dst,
LOCK4denied denied_src 
)

Definition at line 637 of file nfs4_owner.c.

void Copy_nfs4_state_req ( state_owner_t powner,
seqid4  seqid,
nfs_argop4 args,
compound_data_t data,
nfs_resop4 resp,
const char *  tag 
)

Definition at line 658 of file nfs4_owner.c.

state_owner_t* create_nfs4_owner ( state_nfs4_owner_name_t pname,
nfs_client_id_t pclientid,
state_owner_type_t  type,
state_owner_t related_owner,
unsigned int  init_seqid 
)

Definition at line 483 of file nfs4_owner.c.

int display_nfs4_owner ( state_owner_t powner,
char *  str 
)

Definition at line 76 of file nfs4_owner.c.

int display_nfs4_owner_key ( hash_buffer_t pbuff,
char *  str 
)

Definition at line 54 of file nfs4_owner.c.

int display_nfs4_owner_val ( hash_buffer_t pbuff,
char *  str 
)

Definition at line 107 of file nfs4_owner.c.

state_status_t get_clientid_owner ( clientid4  clientid,
state_owner_t **  clientid_owner 
)
Todo:
FSF: I'm not really sure about the refcounting here...

Definition at line 792 of file nfs4_owner.c.

int Init_nfs4_owner ( nfs4_owner_parameter_t  param)

nfs4_Init_nfs4_owner: Init the hashtable for NFS Open Owner cache.

Perform all the required initialization for hashtable State Id cache

Parameters:
param[IN] parameter used to init the duplicate request cache
Returns:
0 if successful, -1 otherwise

Definition at line 316 of file nfs4_owner.c.

int nfs4_owner_Get_Pointer ( state_nfs4_owner_name_t pname,
state_owner_t **  powner 
)

nfs4_owner_Get_Pointer

This routine gets a pointer to an open owner from the open owners's hashtable.

Parameters:
pstate[IN] pointer to the stateid to be checked.
ppstate_data[OUT] pointer's state found
Returns:
1 if ok, 0 otherwise.

Definition at line 390 of file nfs4_owner.c.

void nfs4_owner_PrintAll ( void  )

nfs4_owner_PrintAll

This routine displays the content of the hashtable used to store the open owners.

Returns:
nothing (void function)

Definition at line 436 of file nfs4_owner.c.

uint64_t nfs4_owner_rbt_hash_func ( hash_parameter_t p_hparam,
hash_buffer_t buffclef 
)

Definition at line 217 of file nfs4_owner.c.

int nfs4_owner_Set ( state_nfs4_owner_name_t pname,
state_owner_t powner 
)

nfs4_owner_Set

This routine sets a open owner into the related hashtable

Returns:
1 if ok, 0 otherwise.

Definition at line 338 of file nfs4_owner.c.

uint32_t nfs4_owner_value_hash_func ( hash_parameter_t p_hparam,
hash_buffer_t buffclef 
)

Definition at line 190 of file nfs4_owner.c.

void Process_nfs4_conflict ( LOCK4denied denied,
state_owner_t holder,
fsal_lock_param_t conflict 
)

Definition at line 584 of file nfs4_owner.c.

void Release_nfs4_denied ( LOCK4denied denied)

Definition at line 630 of file nfs4_owner.c.

void remove_nfs4_owner ( state_owner_t powner,
const char *  str 
)

Definition at line 242 of file nfs4_owner.c.

size_t strnlen ( const char *  s,
size_t  maxlen 
)

The management of the NFS4 Owner cache.


Variable Documentation

Definition at line 49 of file nfs4_owner.c.

Definition at line 51 of file nfs4_owner.c.

pthread_mutex_t nfs4_owner_counter_lock = PTHREAD_MUTEX_INITIALIZER

Definition at line 52 of file nfs4_owner.c.