nfs-ganesha 1.4
Classes | Typedefs | Functions | Variables

handle_mapping.c File Reference

This module is used for managing a persistent map between PROXY FSAL handles (including NFSv4 handles from server) and nfsv2 and v3 handles digests (sent to client). More...

#include "config.h"
#include "handle_mapping.h"
#include "handle_mapping_db.h"
#include "handle_mapping_internal.h"
#include "../fsal_internal.h"

Go to the source code of this file.

Classes

struct  digest_pool_entry__
struct  handle_pool_entry__

Typedefs

typedef struct digest_pool_entry__ digest_pool_entry_t
typedef struct handle_pool_entry__ handle_pool_entry_t

Functions

int handle_mapping_hash_add (hash_table_t *p_hash, uint64_t object_id, unsigned int handle_hash, fsal_handle_t *p_handle)
int HandleMap_Init (const handle_map_param_t *p_param)
int HandleMap_GetFH (nfs23_map_handle_t *p_in_nfs23_digest, fsal_handle_t *p_out_fsal_handle)
int HandleMap_SetFH (nfs23_map_handle_t *p_in_nfs23_digest, fsal_handle_t *p_in_handle)
int HandleMap_DelFH (nfs23_map_handle_t *p_in_nfs23_digest)
int HandleMap_Flush ()

Variables

struct pool_tdigest_pool
struct pool_th andle_pool

Detailed Description

This module is used for managing a persistent map between PROXY FSAL handles (including NFSv4 handles from server) and nfsv2 and v3 handles digests (sent to client).

Definition in file handle_mapping.c.


Typedef Documentation


Function Documentation

int handle_mapping_hash_add ( hash_table_t p_hash,
uint64_t  object_id,
unsigned int  handle_hash,
fsal_handle_t p_handle 
)

Definition at line 194 of file handle_mapping.c.

int HandleMap_DelFH ( nfs23_map_handle_t p_in_nfs23_digest)

Remove a handle from the map when it was removed from the filesystem or when it is stale.

Definition at line 383 of file handle_mapping.c.

int HandleMap_Flush ( )

Flush pending database operations (before stopping the server).

Definition at line 423 of file handle_mapping.c.

int HandleMap_GetFH ( nfs23_map_handle_t p_in_nfs23_digest,
fsal_handle_t p_out_fsal_handle 
)

Retrieves a full fsal_handle from a NFS2/3 digest.

Parameters:
p_nfs23_digest[in] the NFS2/3 handle digest
p_out_fsal_handle[out] the fsal handle to be retrieved
Returns:
HANDLEMAP_SUCCESS if the handle is available, HANDLEMAP_STALE if the disgest is unknown or the handle has been deleted

Definition at line 324 of file handle_mapping.c.

int HandleMap_Init ( const handle_map_param_t p_param)

Init handle mapping module. Reloads the content of the mapping files it they exist, else it creates them.

Returns:
0 if OK, a posix error code else.

Definition at line 249 of file handle_mapping.c.

int HandleMap_SetFH ( nfs23_map_handle_t p_in_nfs23_digest,
fsal_handle_t p_in_handle 
)

Save the handle association if it was unknown.

Definition at line 356 of file handle_mapping.c.


Variable Documentation

struct pool_th andle_pool

Definition at line 87 of file handle_mapping.c.

Definition at line 84 of file handle_mapping.c.