nfs-ganesha 1.4
Defines | Functions | Variables

fsal_glue.c File Reference

FSAL glue functions. More...

#include <string.h>
#include "fsal.h"
#include "fsal_glue.h"
#include "fsal_up.h"

Go to the source code of this file.

Defines

#define fsal_increment_nbcall(_f_, _struct_status_)
#define fsal_functions   fsal_functions_array[0]
#define fsal_consts   fsal_consts_array[0]

Functions

fsal_status_t FSAL_access (fsal_handle_t *object_handle, fsal_op_context_t *p_context, fsal_accessflags_t access_type, fsal_attrib_list_t *object_attributes)
fsal_status_t FSAL_getattrs (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_getattrs_descriptor (fsal_file_t *p_file_descriptor, fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_setattrs (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_attrib_list_t *p_attrib_set, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_BuildExportContext (fsal_export_context_t *p_export_context, fsal_path_t *p_export_path, char *fs_specific_options)
fsal_status_t FSAL_CleanUpExportContext (fsal_export_context_t *p_export_context)
fsal_status_t FSAL_cookie_to_uint64 (fsal_handle_t *handle, fsal_op_context_t *context, fsal_cookie_t *cookie, uint64_t *data)
fsal_status_t FSAL_uint64_to_cookie (fsal_handle_t *handle, fsal_op_context_t *context, uint64_t *data, fsal_cookie_t *cookie)
fsal_status_t FSAL_get_cookieverf (fsal_handle_t *handle, fsal_op_context_t *context, uint64_t *verf)
fsal_status_t FSAL_InitClientContext (fsal_op_context_t *p_thr_context)
fsal_status_t FSAL_GetClientContext (fsal_op_context_t *p_thr_context, fsal_export_context_t *p_export_context, fsal_uid_t uid, fsal_gid_t gid, fsal_gid_t *alt_groups, fsal_count_t nb_alt_groups)
fsal_status_t FSAL_create (fsal_handle_t *p_parent_directory_handle, fsal_name_t *p_filename, fsal_op_context_t *p_context, fsal_accessmode_t accessmode, fsal_handle_t *p_object_handle, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_mkdir (fsal_handle_t *p_parent_directory_handle, fsal_name_t *p_dirname, fsal_op_context_t *p_context, fsal_accessmode_t accessmode, fsal_handle_t *p_object_handle, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_link (fsal_handle_t *p_target_handle, fsal_handle_t *p_dir_handle, fsal_name_t *p_link_name, fsal_op_context_t *p_context, fsal_attrib_list_t *p_attributes)
fsal_status_t FSAL_mknode (fsal_handle_t *parentdir_handle, fsal_name_t *p_node_name, fsal_op_context_t *p_context, fsal_accessmode_t accessmode, fsal_nodetype_t nodetype, fsal_dev_t *dev, fsal_handle_t *p_object_handle, fsal_attrib_list_t *node_attributes)
fsal_status_t FSAL_opendir (fsal_handle_t *p_dir_handle, fsal_op_context_t *p_context, fsal_dir_t *p_dir_descriptor, fsal_attrib_list_t *p_dir_attributes)
fsal_status_t FSAL_readdir (fsal_dir_t *p_dir_descriptor, fsal_cookie_t start_position, fsal_attrib_mask_t get_attr_mask, fsal_mdsize_t buffersize, fsal_dirent_t *p_pdirent, fsal_cookie_t *p_end_position, fsal_count_t *p_nb_entries, fsal_boolean_t *p_end_of_dir)
fsal_status_t FSAL_closedir (fsal_dir_t *p_dir_descriptor)
fsal_status_t FSAL_open_by_name (fsal_handle_t *dirhandle, fsal_name_t *filename, fsal_op_context_t *p_context, fsal_openflags_t openflags, fsal_file_t *file_descriptor, fsal_attrib_list_t *file_attributes)
fsal_status_t FSAL_open (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_openflags_t openflags, fsal_file_t *p_file_descriptor, fsal_attrib_list_t *p_file_attributes)
fsal_status_t FSAL_read (fsal_file_t *p_file_descriptor, fsal_seek_t *p_seek_descriptor, fsal_size_t buffer_size, caddr_t buffer, fsal_size_t *p_read_amount, fsal_boolean_t *p_end_of_file)
fsal_status_t FSAL_write (fsal_file_t *p_file_descriptor, fsal_op_context_t *p_context, fsal_seek_t *p_seek_descriptor, fsal_size_t buffer_size, caddr_t buffer, fsal_size_t *p_write_amount)
fsal_status_t FSAL_commit (fsal_file_t *p_file_descriptor, fsal_off_t offset, fsal_size_t length)
fsal_status_t FSAL_close (fsal_file_t *p_file_descriptor)
fsal_status_t FSAL_open_by_fileid (fsal_handle_t *filehandle, fsal_u64_t fileid, fsal_op_context_t *p_context, fsal_openflags_t openflags, fsal_file_t *file_descriptor, fsal_attrib_list_t *file_attributes)
fsal_status_t FSAL_close_by_fileid (fsal_file_t *file_descriptor, fsal_u64_t fileid)
fsal_status_t FSAL_dynamic_fsinfo (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_dynamicfsinfo_t *p_dynamicinfo)
fsal_status_t FSAL_Init (fsal_parameter_t *init_info)
fsal_status_t FSAL_terminate ()
fsal_status_t FSAL_test_access (fsal_op_context_t *p_context, fsal_accessflags_t access_type, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_setattr_access (fsal_op_context_t *p_context, fsal_attrib_list_t *candidate_attributes, fsal_attrib_list_t *object_attributes)
fsal_status_t FSAL_rename_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattrsrc, fsal_attrib_list_t *pattrdest)
fsal_status_t FSAL_create_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattr)
fsal_status_t FSAL_unlink_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattr)
fsal_status_t FSAL_link_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattr)
fsal_status_t FSAL_merge_attrs (fsal_attrib_list_t *pinit_attr, fsal_attrib_list_t *pnew_attr, fsal_attrib_list_t *presult_attr)
fsal_status_t FSAL_lookup (fsal_handle_t *p_parent_directory_handle, fsal_name_t *p_filename, fsal_op_context_t *p_context, fsal_handle_t *p_object_handle, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_lookupPath (fsal_path_t *p_path, fsal_op_context_t *p_context, fsal_handle_t *object_handle, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_lookupJunction (fsal_handle_t *p_junction_handle, fsal_op_context_t *p_context, fsal_handle_t *p_fsoot_handle, fsal_attrib_list_t *p_fsroot_attributes)
fsal_status_t FSAL_CleanObjectResources (fsal_handle_t *in_fsal_handle)
fsal_status_t FSAL_set_quota (fsal_path_t *pfsal_path, int quota_type, fsal_uid_t fsal_uid, fsal_quota_t *pquota, fsal_quota_t *presquota)
fsal_status_t FSAL_get_quota (fsal_path_t *pfsal_path, int quota_type, fsal_uid_t fsal_uid, fsal_quota_t *pquota)
fsal_status_t FSAL_check_quota (char *path, fsal_quota_type_t quota_type, fsal_uid_t fsal_uid)
fsal_status_t FSAL_rcp (fsal_handle_t *filehandle, fsal_op_context_t *p_context, fsal_path_t *p_local_path, fsal_rcpflag_t transfer_opt)
fsal_status_t FSAL_rename (fsal_handle_t *p_old_parentdir_handle, fsal_name_t *p_old_name, fsal_handle_t *p_new_parentdir_handle, fsal_name_t *p_new_name, fsal_op_context_t *p_context, fsal_attrib_list_t *p_src_dir_attributes, fsal_attrib_list_t *p_tgt_dir_attributes)
void FSAL_get_stats (fsal_statistics_t *stats, fsal_boolean_t reset)
fsal_status_t FSAL_readlink (fsal_handle_t *p_linkhandle, fsal_op_context_t *p_context, fsal_path_t *p_link_content, fsal_attrib_list_t *p_link_attributes)
fsal_status_t FSAL_symlink (fsal_handle_t *p_parent_directory_handle, fsal_name_t *p_linkname, fsal_path_t *p_linkcontent, fsal_op_context_t *p_context, fsal_accessmode_t accessmode, fsal_handle_t *p_link_handle, fsal_attrib_list_t *p_link_attributes)
int FSAL_handlecmp (fsal_handle_t *handle1, fsal_handle_t *handle2, fsal_status_t *status)
unsigned int FSAL_Handle_to_HashIndex (fsal_handle_t *p_handle, unsigned int cookie, unsigned int alphabet_len, unsigned int index_size)
unsigned int FSAL_Handle_to_RBTIndex (fsal_handle_t *p_handle, unsigned int cookie)
unsigned int FSAL_Handle_to_Hash_both (fsal_handle_t *p_handle, unsigned int cookie, unsigned int alphabet_len, unsigned int index_size, unsigned int *phashval, unsigned int *prbtval)
fsal_status_t FSAL_DigestHandle (fsal_export_context_t *p_expcontext, fsal_digesttype_t output_type, fsal_handle_t *p_in_fsal_handle, struct fsal_handle_desc *fh_desc)
fsal_status_t FSAL_ExpandHandle (fsal_export_context_t *p_expcontext, fsal_digesttype_t in_type, struct fsal_handle_desc *fh_desc)
fsal_status_t FSAL_SetDefault_FSAL_parameter (fsal_parameter_t *out_parameter)
fsal_status_t FSAL_SetDefault_FS_common_parameter (fsal_parameter_t *out_parameter)
fsal_status_t FSAL_SetDefault_FS_specific_parameter (fsal_parameter_t *out_parameter)
fsal_status_t FSAL_load_FSAL_parameter_from_conf (config_file_t in_config, fsal_parameter_t *out_parameter)
fsal_status_t FSAL_load_FS_common_parameter_from_conf (config_file_t in_config, fsal_parameter_t *out_parameter)
fsal_status_t FSAL_load_FS_specific_parameter_from_conf (config_file_t in_config, fsal_parameter_t *out_parameter)
fsal_status_t FSAL_truncate (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_size_t length, fsal_file_t *file_descriptor, fsal_attrib_list_t *p_object_attributes)
fsal_status_t FSAL_unlink (fsal_handle_t *p_parent_directory_handle, fsal_name_t *p_object_name, fsal_op_context_t *p_context, fsal_attrib_list_t *p_parent_directory_attributes)
char * FSAL_GetFSName ()
fsal_status_t FSAL_GetXAttrAttrs (fsal_handle_t *p_objecthandle, fsal_op_context_t *p_context, unsigned int xattr_id, fsal_attrib_list_t *p_attrs)
fsal_status_t FSAL_ListXAttrs (fsal_handle_t *p_objecthandle, unsigned int cookie, fsal_op_context_t *p_context, fsal_xattrent_t *xattrs_tab, unsigned int xattrs_tabsize, unsigned int *p_nb_returned, int *end_of_list)
fsal_status_t FSAL_GetXAttrValueById (fsal_handle_t *p_objecthandle, unsigned int xattr_id, fsal_op_context_t *p_context, caddr_t buffer_addr, size_t buffer_size, size_t *p_output_size)
fsal_status_t FSAL_GetXAttrIdByName (fsal_handle_t *p_objecthandle, const fsal_name_t *xattr_name, fsal_op_context_t *p_context, unsigned int *pxattr_id)
fsal_status_t FSAL_GetXAttrValueByName (fsal_handle_t *p_objecthandle, const fsal_name_t *xattr_name, fsal_op_context_t *p_context, caddr_t buffer_addr, size_t buffer_size, size_t *p_output_size)
fsal_status_t FSAL_SetXAttrValue (fsal_handle_t *p_objecthandle, const fsal_name_t *xattr_name, fsal_op_context_t *p_context, caddr_t buffer_addr, size_t buffer_size, int create)
fsal_status_t FSAL_SetXAttrValueById (fsal_handle_t *p_objecthandle, unsigned int xattr_id, fsal_op_context_t *p_context, caddr_t buffer_addr, size_t buffer_size)
fsal_status_t FSAL_RemoveXAttrById (fsal_handle_t *p_objecthandle, fsal_op_context_t *p_context, unsigned int xattr_id)
fsal_status_t FSAL_RemoveXAttrByName (fsal_handle_t *p_objecthandle, fsal_op_context_t *p_context, const fsal_name_t *xattr_name)
unsigned int FSAL_GetFileno (fsal_file_t *pfile)
fsal_status_t FSAL_getextattrs (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_extattrib_list_t *p_object_attributes)
fsal_status_t FSAL_lock_op (fsal_file_t *p_file_descriptor, fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, void *p_owner, fsal_lock_op_t lock_op, fsal_lock_param_t request_lock, fsal_lock_param_t *conflicting_lock)
fsal_status_t FSAL_share_op (fsal_file_t *p_file_descriptor, fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, void *p_owner, fsal_share_param_t request_share)
int FSAL_LoadLibrary (char *path)
void FSAL_LoadFunctions (void)
void FSAL_LoadConsts (void)

Variables

int __thread my_fsalid = -1
fsal_functions_t fsal_functions_array [NB_AVAILABLE_FSAL]
fsal_const_t fsal_consts_array [NB_AVAILABLE_FSAL]

Detailed Description

FSAL glue functions.

Definition in file fsal_glue.c.


Define Documentation

#define fsal_consts   fsal_consts_array[0]

Definition at line 29 of file fsal_glue.c.

#define fsal_functions   fsal_functions_array[0]

Definition at line 28 of file fsal_glue.c.

#define fsal_increment_nbcall (   _f_,
  _struct_status_ 
)

Definition at line 17 of file fsal_glue.c.


Function Documentation

fsal_status_t FSAL_access ( fsal_handle_t object_handle,
fsal_op_context_t p_context,
fsal_accessflags_t  access_type,
fsal_attrib_list_t object_attributes 
)

Definition at line 38 of file fsal_glue.c.

fsal_status_t FSAL_BuildExportContext ( fsal_export_context_t p_export_context,
fsal_path_t p_export_path,
char *  fs_specific_options 
)

Definition at line 82 of file fsal_glue.c.

fsal_status_t FSAL_check_quota ( char *  path,
fsal_quota_type_t  quota_type,
fsal_uid_t  fsal_uid 
)

Definition at line 445 of file fsal_glue.c.

fsal_status_t FSAL_CleanObjectResources ( fsal_handle_t in_fsal_handle)

FSAL_CleanObjectResources: Garbages the resources relative to an fsal_handle_t.

Definition at line 422 of file fsal_glue.c.

fsal_status_t FSAL_CleanUpExportContext ( fsal_export_context_t p_export_context)

Definition at line 90 of file fsal_glue.c.

fsal_status_t FSAL_close ( fsal_file_t p_file_descriptor)

Definition at line 307 of file fsal_glue.c.

fsal_status_t FSAL_close_by_fileid ( fsal_file_t file_descriptor,
fsal_u64_t  fileid 
)

Definition at line 323 of file fsal_glue.c.

fsal_status_t FSAL_closedir ( fsal_dir_t p_dir_descriptor)

Definition at line 251 of file fsal_glue.c.

fsal_status_t FSAL_commit ( fsal_file_t p_file_descriptor,
fsal_off_t  offset,
fsal_size_t  length 
)

Definition at line 300 of file fsal_glue.c.

fsal_status_t FSAL_cookie_to_uint64 ( fsal_handle_t handle,
fsal_op_context_t context,
fsal_cookie_t cookie,
uint64_t data 
)

FSAL_cookie_to_uint64

This function converts an fsal_cookie_t to a uint64_t value that can be supplied to NFS readdir routines.

Parameters:
[in]handleThe handle of the directory to which the cookie pertains
[in]contextThe FSAL operation context
[in]cookieThe directory entry cookie
[out]dataThe uint64_t value corresponding to the cookie

Definition at line 95 of file fsal_glue.c.

fsal_status_t FSAL_create ( fsal_handle_t p_parent_directory_handle,
fsal_name_t p_filename,
fsal_op_context_t p_context,
fsal_accessmode_t  accessmode,
fsal_handle_t p_object_handle,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 183 of file fsal_glue.c.

fsal_status_t FSAL_create_access ( fsal_op_context_t pcontext,
fsal_attrib_list_t pattr 
)

Definition at line 368 of file fsal_glue.c.

fsal_status_t FSAL_DigestHandle ( fsal_export_context_t p_expcontext,
fsal_digesttype_t  output_type,
fsal_handle_t in_fsal_handle,
struct fsal_handle_desc fh_desc 
)

FSAL_DigestHandle : convert an fsal_handle_t to a buffer to be included into NFS handles, or another digest.

Definition at line 537 of file fsal_glue.c.

fsal_status_t FSAL_dynamic_fsinfo ( fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_dynamicfsinfo_t p_dynamicinfo 
)

Definition at line 329 of file fsal_glue.c.

fsal_status_t FSAL_ExpandHandle ( fsal_export_context_t p_expcontext,
fsal_digesttype_t  in_type,
struct fsal_handle_desc fh_desc 
)

FSAL_ExpandHandle : convert a buffer extracted from NFS handles to an FSAL handle.

Definition at line 546 of file fsal_glue.c.

fsal_status_t FSAL_get_cookieverf ( fsal_handle_t handle,
fsal_op_context_t context,
uint64_t verf 
)

FSAL_get_cookieverf

This function retrieves a cookie verifier from the FSAL for a given directory.

Parameters:
[in]handleThe handle of the directory to which the verifier pertains
[in]contextThe FSAL operation context
[out]verfThe directory entry cookie

Definition at line 133 of file fsal_glue.c.

fsal_status_t FSAL_get_quota ( fsal_path_t pfsal_path,
int  quota_type,
fsal_uid_t  fsal_uid,
fsal_quota_t pquota 
)

Definition at line 437 of file fsal_glue.c.

void FSAL_get_stats ( fsal_statistics_t stats,
fsal_boolean_t  reset 
)

Definition at line 473 of file fsal_glue.c.

fsal_status_t FSAL_getattrs ( fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 47 of file fsal_glue.c.

fsal_status_t FSAL_getattrs_descriptor ( fsal_file_t p_file_descriptor,
fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 54 of file fsal_glue.c.

fsal_status_t FSAL_GetClientContext ( fsal_op_context_t p_thr_context,
fsal_export_context_t p_export_context,
fsal_uid_t  uid,
fsal_gid_t  gid,
fsal_gid_t alt_groups,
fsal_count_t  nb_alt_groups 
)

Definition at line 171 of file fsal_glue.c.

fsal_status_t FSAL_getextattrs ( fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_extattrib_list_t p_object_attributes 
)

Definition at line 704 of file fsal_glue.c.

unsigned int FSAL_GetFileno ( fsal_file_t pfile)

Definition at line 699 of file fsal_glue.c.

char* FSAL_GetFSName ( )

Definition at line 607 of file fsal_glue.c.

fsal_status_t FSAL_GetXAttrAttrs ( fsal_handle_t p_objecthandle,
fsal_op_context_t p_context,
unsigned int  xattr_id,
fsal_attrib_list_t p_attrs 
)

Get the attributes of an extended attribute from its index.

Parameters:
p_objecthandleHandle of the object you want to get attribute for.
p_contextpointer to the current security context.
xattr_cookiexattr's cookie (as returned by listxattrs).
p_attrsxattr's attributes.
Parameters:
p_attrsIN/OUT xattr attributes (if supported)

Definition at line 612 of file fsal_glue.c.

fsal_status_t FSAL_GetXAttrIdByName ( fsal_handle_t p_objecthandle,
const fsal_name_t xattr_name,
fsal_op_context_t p_context,
unsigned int *  pxattr_id 
)

Get the index of an xattr based on its name

Parameters:
p_objecthandleHandle of the object you want to get attribute for.
xattr_namethe name of the attribute to be read.
pxattr_idfound xattr_id
Returns:
ERR_FSAL_NO_ERROR if xattr_name exists, ERR_FSAL_NOENT otherwise

Definition at line 644 of file fsal_glue.c.

fsal_status_t FSAL_GetXAttrValueById ( fsal_handle_t p_objecthandle,
unsigned int  xattr_id,
fsal_op_context_t p_context,
caddr_t  buffer_addr,
size_t  buffer_size,
size_t *  p_output_size 
)

Get the value of an extended attribute from its index.

Parameters:
p_objecthandleHandle of the object you want to get attribute for.
xattr_namethe name of the attribute to be read.
p_contextpointer to the current security context.
buffer_addraddress of the buffer where the xattr value is to be stored.
buffer_sizesize of the buffer where the xattr value is to be stored.
p_output_sizesize of the data actually stored into the buffer.

Definition at line 633 of file fsal_glue.c.

fsal_status_t FSAL_GetXAttrValueByName ( fsal_handle_t p_objecthandle,
const fsal_name_t xattr_name,
fsal_op_context_t p_context,
caddr_t  buffer_addr,
size_t  buffer_size,
size_t *  p_output_size 
)

Get the value of an extended attribute from its name.

Parameters:
p_objecthandleHandle of the object you want to get attribute for.
xattr_namethe name of the attribute to be read.
p_contextpointer to the current security context.
buffer_addraddress of the buffer where the xattr value is to be stored.
buffer_sizesize of the buffer where the xattr value is to be stored.
p_output_sizesize of the data actually stored into the buffer.

Definition at line 653 of file fsal_glue.c.

unsigned int FSAL_Handle_to_Hash_both ( fsal_handle_t p_handle,
unsigned int  cookie,
unsigned int  alphabet_len,
unsigned int  index_size,
unsigned int *  phashval,
unsigned int *  prbtval 
)

FSAL_Handle_to_Hash_Both This function is used for generating both a RBT node ID and a hash index in one pass in order to identify entries into the RBT.

Parameters:
p_handleThe handle to be hashed
cookieMakes it possible to have different hash value for the same handle, when cookie changes.
alphabet_lenParameter for polynomial hashing algorithm
index_sizeThe range of hash value will be [0..index_size-1]
phashvalFirst computed value : hash value
prbtvalSecond computed value : rbt value
Returns:
1 if successful and 0 otherwise

Definition at line 520 of file fsal_glue.c.

unsigned int FSAL_Handle_to_HashIndex ( fsal_handle_t p_handle,
unsigned int  cookie,
unsigned int  alphabet_len,
unsigned int  index_size 
)

FSAL_Handle_to_HashIndex This function is used for hashing a FSAL handle in order to dispatch entries into the hash table array.

Parameters:
p_handleThe handle to be hashed
cookieMakes it possible to have different hash value for the same handle, when cookie changes.
alphabet_lenParameter for polynomial hashing algorithm
index_sizeThe range of hash value will be [0..index_size-1]
Returns:
The hash value

Definition at line 507 of file fsal_glue.c.

unsigned int FSAL_Handle_to_RBTIndex ( fsal_handle_t p_handle,
unsigned int  cookie 
)

FSAL_Handle_to_RBTIndex This function is used for generating a RBT node ID in order to identify entries into the RBT.

Parameters:
p_handleThe handle to be hashed
cookieMakes it possible to have different hash value for the same handle, when cookie changes.
Returns:
The hash value

Definition at line 515 of file fsal_glue.c.

int FSAL_handlecmp ( fsal_handle_t handle1,
fsal_handle_t handle2,
fsal_status_t status 
)

Compare 2 handles.

Returns:
- 0 if handle are the same
  • A non null value else.

Definition at line 501 of file fsal_glue.c.

fsal_status_t FSAL_Init ( fsal_parameter_t init_info)

FSAL_Init: Initializes Filesystem abstraction layer.

Definition at line 336 of file fsal_glue.c.

fsal_status_t FSAL_InitClientContext ( fsal_op_context_t p_thr_context)

Definition at line 166 of file fsal_glue.c.

fsal_status_t FSAL_link ( fsal_handle_t p_target_handle,
fsal_handle_t p_dir_handle,
fsal_name_t p_link_name,
fsal_op_context_t p_context,
fsal_attrib_list_t p_attributes 
)

Definition at line 205 of file fsal_glue.c.

fsal_status_t FSAL_link_access ( fsal_op_context_t pcontext,
fsal_attrib_list_t pattr 
)

Definition at line 380 of file fsal_glue.c.

fsal_status_t FSAL_ListXAttrs ( fsal_handle_t p_objecthandle,
unsigned int  cookie,
fsal_op_context_t p_context,
fsal_xattrent_t xattrs_tab,
unsigned int  xattrs_tabsize,
unsigned int *  p_nb_returned,
int *  end_of_list 
)

Retrieves the list of extended attributes for an object in the filesystem.

Parameters:
p_objecthandleHandle of the object we want to get extended attributes.
cookieindex of the next entry to be returned.
p_contextpointer to the current security context.
xattrs_taba table for storing extended attributes list to.
xattrs_tabsizethe maximum number of xattr entries that xattrs_tab can contain.
p_nb_returnedthe number of xattr entries actually stored in xattrs_tab.
end_of_listthis boolean indicates that the end of xattrs list has been reached.

Definition at line 620 of file fsal_glue.c.

fsal_status_t FSAL_load_FS_common_parameter_from_conf ( config_file_t  in_config,
fsal_parameter_t out_parameter 
)

Definition at line 574 of file fsal_glue.c.

fsal_status_t FSAL_load_FS_specific_parameter_from_conf ( config_file_t  in_config,
fsal_parameter_t out_parameter 
)

Definition at line 580 of file fsal_glue.c.

fsal_status_t FSAL_load_FSAL_parameter_from_conf ( config_file_t  in_config,
fsal_parameter_t out_parameter 
)

FSAL_load_FSAL_parameter_from_conf, FSAL_load_FS_common_parameter_from_conf, FSAL_load_FS_specific_parameter_from_conf:

Those functions initialize the FSAL init parameter structure from a configuration structure.

Parameters:
in_config(input): Structure that represents the parsed configuration file.
out_parameter(ouput) FSAL initialization structure filled according to the configuration file given as parameter.
Returns:
ERR_FSAL_NO_ERROR (no error) , ERR_FSAL_NOENT (missing a mandatory stanza in config file), ERR_FSAL_INVAL (invalid parameter), ERR_FSAL_SERVERFAULT (unexpected error) ERR_FSAL_FAULT (null pointer given as parameter),

Definition at line 568 of file fsal_glue.c.

void FSAL_LoadConsts ( void  )

Definition at line 791 of file fsal_glue.c.

void FSAL_LoadFunctions ( void  )

Definition at line 786 of file fsal_glue.c.

int FSAL_LoadLibrary ( char *  path)

Definition at line 781 of file fsal_glue.c.

fsal_status_t FSAL_lock_op ( fsal_file_t p_file_descriptor,
fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
void *  p_owner,
fsal_lock_op_t  lock_op,
fsal_lock_param_t  request_lock,
fsal_lock_param_t conflicting_lock 
)

Definition at line 711 of file fsal_glue.c.

fsal_status_t FSAL_lookup ( fsal_handle_t p_parent_directory_handle,
fsal_name_t p_filename,
fsal_op_context_t p_context,
fsal_handle_t p_object_handle,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 393 of file fsal_glue.c.

fsal_status_t FSAL_lookupJunction ( fsal_handle_t p_junction_handle,
fsal_op_context_t p_context,
fsal_handle_t p_fsoot_handle,
fsal_attrib_list_t p_fsroot_attributes 
)

Definition at line 412 of file fsal_glue.c.

fsal_status_t FSAL_lookupPath ( fsal_path_t p_path,
fsal_op_context_t p_context,
fsal_handle_t object_handle,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 403 of file fsal_glue.c.

fsal_status_t FSAL_merge_attrs ( fsal_attrib_list_t pinit_attr,
fsal_attrib_list_t pnew_attr,
fsal_attrib_list_t presult_attr 
)

Definition at line 386 of file fsal_glue.c.

fsal_status_t FSAL_mkdir ( fsal_handle_t p_parent_directory_handle,
fsal_name_t p_dirname,
fsal_op_context_t p_context,
fsal_accessmode_t  accessmode,
fsal_handle_t p_object_handle,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 194 of file fsal_glue.c.

fsal_status_t FSAL_mknode ( fsal_handle_t parentdir_handle,
fsal_name_t p_node_name,
fsal_op_context_t p_context,
fsal_accessmode_t  accessmode,
fsal_nodetype_t  nodetype,
fsal_dev_t dev,
fsal_handle_t p_object_handle,
fsal_attrib_list_t node_attributes 
)

Definition at line 215 of file fsal_glue.c.

fsal_status_t FSAL_open ( fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_openflags_t  openflags,
fsal_file_t p_file_descriptor,
fsal_attrib_list_t p_file_attributes 
)

Definition at line 267 of file fsal_glue.c.

fsal_status_t FSAL_open_by_fileid ( fsal_handle_t filehandle,
fsal_u64_t  fileid,
fsal_op_context_t p_context,
fsal_openflags_t  openflags,
fsal_file_t file_descriptor,
fsal_attrib_list_t file_attributes 
)

Definition at line 312 of file fsal_glue.c.

fsal_status_t FSAL_open_by_name ( fsal_handle_t dirhandle,
fsal_name_t filename,
fsal_op_context_t p_context,
fsal_openflags_t  openflags,
fsal_file_t file_descriptor,
fsal_attrib_list_t file_attributes 
)

Definition at line 256 of file fsal_glue.c.

fsal_status_t FSAL_opendir ( fsal_handle_t p_dir_handle,
fsal_op_context_t p_context,
fsal_dir_t p_dir_descriptor,
fsal_attrib_list_t p_dir_attributes 
)

Definition at line 228 of file fsal_glue.c.

fsal_status_t FSAL_rcp ( fsal_handle_t filehandle,
fsal_op_context_t p_context,
fsal_path_t p_local_path,
fsal_rcpflag_t  transfer_opt 
)

Definition at line 452 of file fsal_glue.c.

fsal_status_t FSAL_read ( fsal_file_t p_file_descriptor,
fsal_seek_t p_seek_descriptor,
fsal_size_t  buffer_size,
caddr_t  buffer,
fsal_size_t p_read_amount,
fsal_boolean_t p_end_of_file 
)

Definition at line 277 of file fsal_glue.c.

fsal_status_t FSAL_readdir ( fsal_dir_t p_dir_descriptor,
fsal_cookie_t  start_position,
fsal_attrib_mask_t  get_attr_mask,
fsal_mdsize_t  buffersize,
fsal_dirent_t p_pdirent,
fsal_cookie_t p_end_position,
fsal_count_t p_nb_entries,
fsal_boolean_t p_end_of_dir 
)

Definition at line 237 of file fsal_glue.c.

fsal_status_t FSAL_readlink ( fsal_handle_t p_linkhandle,
fsal_op_context_t p_context,
fsal_path_t p_link_content,
fsal_attrib_list_t p_link_attributes 
)

Definition at line 479 of file fsal_glue.c.

fsal_status_t FSAL_RemoveXAttrById ( fsal_handle_t p_objecthandle,
fsal_op_context_t p_context,
unsigned int  xattr_id 
)

Removes a xattr by Id

Parameters:
p_objecthandleHandle of the object you want to get attribute for.
p_contextpointer to the current security context.
xattr_idxattr's id

Definition at line 685 of file fsal_glue.c.

fsal_status_t FSAL_RemoveXAttrByName ( fsal_handle_t p_objecthandle,
fsal_op_context_t p_context,
const fsal_name_t xattr_name 
)

Removes a xattr by Name

Parameters:
p_objecthandleHandle of the object you want to get attribute for.
p_contextpointer to the current security context.
xattr_namexattr's name

Definition at line 692 of file fsal_glue.c.

fsal_status_t FSAL_rename ( fsal_handle_t p_old_parentdir_handle,
fsal_name_t p_old_name,
fsal_handle_t p_new_parentdir_handle,
fsal_name_t p_new_name,
fsal_op_context_t p_context,
fsal_attrib_list_t p_src_dir_attributes,
fsal_attrib_list_t p_tgt_dir_attributes 
)

Definition at line 460 of file fsal_glue.c.

fsal_status_t FSAL_rename_access ( fsal_op_context_t pcontext,
fsal_attrib_list_t pattrsrc,
fsal_attrib_list_t pattrdest 
)

Definition at line 361 of file fsal_glue.c.

fsal_status_t FSAL_set_quota ( fsal_path_t pfsal_path,
int  quota_type,
fsal_uid_t  fsal_uid,
fsal_quota_t pquota,
fsal_quota_t presquota 
)

Definition at line 427 of file fsal_glue.c.

fsal_status_t FSAL_setattr_access ( fsal_op_context_t p_context,
fsal_attrib_list_t candidate_attributes,
fsal_attrib_list_t object_attributes 
)

Definition at line 353 of file fsal_glue.c.

fsal_status_t FSAL_setattrs ( fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_attrib_list_t p_attrib_set,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 73 of file fsal_glue.c.

fsal_status_t FSAL_SetDefault_FS_common_parameter ( fsal_parameter_t out_parameter)

Definition at line 558 of file fsal_glue.c.

fsal_status_t FSAL_SetDefault_FS_specific_parameter ( fsal_parameter_t out_parameter)

Definition at line 563 of file fsal_glue.c.

fsal_status_t FSAL_SetDefault_FSAL_parameter ( fsal_parameter_t out_parameter)

Those routines set the default parameters for FSAL init structure.

Returns:
ERR_FSAL_NO_ERROR (no error) , ERR_FSAL_FAULT (null pointer given as parameter), ERR_FSAL_SERVERFAULT (unexpected error)

Definition at line 553 of file fsal_glue.c.

fsal_status_t FSAL_SetXAttrValue ( fsal_handle_t p_objecthandle,
const fsal_name_t xattr_name,
fsal_op_context_t p_context,
caddr_t  buffer_addr,
size_t  buffer_size,
int  create 
)

Set the value of an extended attribute.

Parameters:
p_objecthandleHandle of the object you want to set attribute for.
xattr_namethe name of the attribute to be written.
p_contextpointer to the current security context.
buffer_addraddress of the buffer where the xattr value is stored.
buffer_sizesize of the buffer where the xattr value is stored.
createthis boolean specifies if the attribute is created if it does not exist.

Definition at line 664 of file fsal_glue.c.

fsal_status_t FSAL_SetXAttrValueById ( fsal_handle_t p_objecthandle,
unsigned int  xattr_id,
fsal_op_context_t p_context,
caddr_t  buffer_addr,
size_t  buffer_size 
)

Set the value of an extended attribute by its Id.

Parameters:
p_objecthandleHandle of the object you want to set attribute for.
xattr_idindex of the attribute to be written.
p_contextpointer to the current security context.
buffer_addraddress of the buffer where the xattr value is stored.
buffer_sizesize of the buffer where the xattr value is stored.

Definition at line 675 of file fsal_glue.c.

fsal_status_t FSAL_share_op ( fsal_file_t p_file_descriptor,
fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
void *  p_owner,
fsal_share_param_t  request_share 
)

Definition at line 731 of file fsal_glue.c.

fsal_status_t FSAL_symlink ( fsal_handle_t p_parent_directory_handle,
fsal_name_t p_linkname,
fsal_path_t p_linkcontent,
fsal_op_context_t p_context,
fsal_accessmode_t  accessmode,
fsal_handle_t p_link_handle,
fsal_attrib_list_t p_link_attributes 
)

Definition at line 488 of file fsal_glue.c.

fsal_status_t FSAL_terminate ( )

Definition at line 341 of file fsal_glue.c.

fsal_status_t FSAL_test_access ( fsal_op_context_t p_context,
fsal_accessflags_t  access_type,
fsal_attrib_list_t object_attributes 
)

FSAL_test_access : test if a client identified by cred can access the object whom the attributes are object_attributes. The following fields of the object_attributes structure MUST be filled : acls (if supported), mode, owner, group. This doesn't make any call to the filesystem, as a result, this doesn't ensure that the file exists, nor that the permissions given as parameters are the actual file permissions : this must be ensured by the cache_inode layer, using FSAL_getattrs, for example.

Definition at line 346 of file fsal_glue.c.

fsal_status_t FSAL_truncate ( fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_size_t  length,
fsal_file_t file_descriptor,
fsal_attrib_list_t p_object_attributes 
)

Definition at line 587 of file fsal_glue.c.

fsal_status_t FSAL_uint64_to_cookie ( fsal_handle_t handle,
fsal_op_context_t context,
uint64_t uint64,
fsal_cookie_t cookie 
)

FSAL_uint64_to_cookie

This function converts a uint64_t value supplied by the NFS caller to the FSAL's cookie type.

Parameters:
[in]handleThe handle of the directory to which the cookie pertains
[in]contextThe FSAL operation context
[in]uint64The uint64_t value corresponding to the cookie
[out]cookieThe directory entry cookie

Definition at line 114 of file fsal_glue.c.

fsal_status_t FSAL_unlink ( fsal_handle_t p_parent_directory_handle,
fsal_name_t p_object_name,
fsal_op_context_t p_context,
fsal_attrib_list_t p_parent_directory_attributes 
)

Definition at line 597 of file fsal_glue.c.

fsal_status_t FSAL_unlink_access ( fsal_op_context_t pcontext,
fsal_attrib_list_t pattr 
)

Definition at line 374 of file fsal_glue.c.

fsal_status_t FSAL_write ( fsal_file_t p_file_descriptor,
fsal_op_context_t p_context,
fsal_seek_t p_seek_descriptor,
fsal_size_t  buffer_size,
caddr_t  buffer,
fsal_size_t p_write_amount 
)

Definition at line 288 of file fsal_glue.c.


Variable Documentation

fsal_const_t fsal_consts_array[NB_AVAILABLE_FSAL]

Definition at line 26 of file fsal_glue.c.

Definition at line 25 of file fsal_glue.c.

int __thread my_fsalid = -1

Definition at line 23 of file fsal_glue.c.