nfs-ganesha 1.4
Functions

common_methods.h File Reference

Go to the source code of this file.

Functions

fsal_status_t COMMON_CleanUpExportContext_noerror (fsal_export_context_t *p_export_context)
fsal_status_t COMMON_InitClientContext (fsal_op_context_t *p_thr_context)
fsal_status_t COMMON_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 COMMON_setattr_access_notsupp (fsal_op_context_t *p_context, fsal_attrib_list_t *candidate_attributes, fsal_attrib_list_t *object_attributes)
fsal_status_t COMMON_rename_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattrsrc, fsal_attrib_list_t *pattrdest)
fsal_status_t COMMON_rename_access_notsupp (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattrsrc, fsal_attrib_list_t *pattrdest)
fsal_status_t COMMON_create_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattr)
fsal_status_t COMMON_unlink_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattr)
fsal_status_t COMMON_link_access (fsal_op_context_t *pcontext, fsal_attrib_list_t *pattr)
fsal_status_t COMMON_merge_attrs (fsal_attrib_list_t *pinit_attr, fsal_attrib_list_t *pnew_attr, fsal_attrib_list_t *presult_attr)
fsal_status_t COMMON_get_quota_noquota (fsal_path_t *pfsal_path, int quota_type, fsal_uid_t fsal_uid, fsal_quota_t *pquota)
fsal_status_t COMMON_set_quota_noquota (fsal_path_t *pfsal_path, int quota_type, fsal_uid_t fsal_uid, fsal_quota_t *pquot, fsal_quota_t *presquot)
fsal_status_t COMMON_check_quota (char *path, fsal_quota_type_t quota_type, fsal_uid_t fsal_uid)
fsal_status_t COMMON_CleanObjectResources (fsal_handle_t *in_fsal_handle)
fsal_status_t COMMON_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 COMMON_close_by_fileid (fsal_file_t *file_descriptor, fsal_u64_t fileid)
fsal_status_t COMMON_getextattrs_notsupp (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_extattrib_list_t *p_object_attributes)
fsal_status_t COMMON_terminate_noerror ()
fsal_status_t COMMON_SetDefault_FSAL_parameter (fsal_parameter_t *out_parameter)
fsal_status_t COMMON_SetDefault_FS_common_parameter (fsal_parameter_t *out_parameter)
fsal_status_t COMMON_load_FSAL_parameter_from_conf (config_file_t in_config, fsal_parameter_t *out_parameter)
fsal_status_t COMMON_load_FS_common_parameter_from_conf (config_file_t in_config, fsal_parameter_t *out_parameter)
fsal_status_t COMMON_share_op_notsupp (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)

Function Documentation

fsal_status_t COMMON_check_quota ( char *  pfsal_path,
fsal_quota_type_t  quota_type,
fsal_uid_t  fsal_uid 
)

FSAL_check_quota : checks if quotas allow a user to do an operation

Parameters:
pfsal_pathpath to the filesystem whose quota are requested
quota_typetype of quota to be checked (inodes or blocks
fsal_uiduid for the user whose quota are requested
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • Another error code if an error occured.

Definition at line 534 of file common_methods.c.

fsal_status_t COMMON_CleanObjectResources ( fsal_handle_t in_fsal_handle)

FSAL_CleanObjectResources: This function cleans remanent internal resources that are kept for a given FSAL handle.

Parameters:
in_fsal_handle(input): The handle whose the resources are to be cleaned.

Definition at line 553 of file common_methods.c.

fsal_status_t COMMON_CleanUpExportContext_noerror ( fsal_export_context_t p_export_context)

FSAL_CleanUpExportContext : this will clean up and state in an export that was created during the BuildExportContext phase. For many FSALs this may be a noop.

Parameters:
p_export_context

Definition at line 40 of file common_methods.c.

fsal_status_t COMMON_close_by_fileid ( fsal_file_t file_descriptor,
fsal_u64_t  fileid 
)

Definition at line 573 of file common_methods.c.

fsal_status_t COMMON_create_access ( fsal_op_context_t pcontext,
fsal_attrib_list_t pattr 
)

FSAL_create_access : test if a client identified by cred can create an object within a directory knowing its attributes

Parameters:
pcontext(in fsal_cred_t *) user's context.
pattrsource directory attributes
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_ACCESS (Permission denied)
  • ERR_FSAL_FAULT (null pointer parameter)
  • ERR_FSAL_INVAL (missing attributes : mode, group, user,...)
  • ERR_FSAL_SERVERFAULT (unexpected error)

Definition at line 195 of file common_methods.c.

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

FSAL_get_quota : Gets the quota for a given path.

Parameters:
pfsal_pathpath to the filesystem whose quota are requested
fsal_uiduid for the user whose quota are requested
pquota(input): Parameter to the structure containing the requested quotas
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • Another error code if an error occured.

Definition at line 486 of file common_methods.c.

fsal_status_t COMMON_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 60 of file common_methods.c.

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

FSAL_getetxattrs: Get attributes for the object specified by its filehandle.

Parameters:
filehandle(input): The handle of the object to get parameters.
cred(input): Authentication context for the operation (user,...).
object_attributes(mandatory input/output): The retrieved attributes for the object. As input, it defines the attributes that the caller wants to retrieve (by positioning flags into this structure) and the output is built considering this input (it fills the structure according to the flags it contains).
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • Another error code if an error occured.

Definition at line 598 of file common_methods.c.

fsal_status_t COMMON_InitClientContext ( fsal_op_context_t p_thr_context)

Definition at line 47 of file common_methods.c.

fsal_status_t COMMON_link_access ( fsal_op_context_t pcontext,
fsal_attrib_list_t pattr 
)

FSAL_link_access : test if a client identified by cred can link to a directory knowing its attributes

Parameters:
pcontext(in fsal_cred_t *) user's context.
pattrdestination directory attributes
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_ACCESS (Permission denied)
  • ERR_FSAL_FAULT (null pointer parameter)
  • ERR_FSAL_INVAL (missing attributes : mode, group, user,...)
  • ERR_FSAL_SERVERFAULT (unexpected error)

Definition at line 251 of file common_methods.c.

fsal_status_t COMMON_load_FS_common_parameter_from_conf ( config_file_t  in_config,
fsal_parameter_t out_parameter 
)

Definition at line 814 of file common_methods.c.

fsal_status_t COMMON_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 705 of file common_methods.c.

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

FSAL_merge_attrs: merge to attributes structure.

This functions merge the second attributes list into the first argument. Results in returned in the last argument.

Parameters:
pinit_attr[IN] attributes to be changed
pnew_attr[IN] attributes to be added
presult_attr[IN] resulting attributes
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_INVAL Invalid argument(s)

Definition at line 279 of file common_methods.c.

fsal_status_t COMMON_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 563 of file common_methods.c.

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

FSAL_rename_access : test if a client identified by cred can be renamed on the object knowing the parents attributes

Parameters:
pcontext(in fsal_cred_t *) user's context.
pattrsrcsource directory attributes
pattrdestdestination directory attributes
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_ACCESS (Permission denied)
  • ERR_FSAL_FAULT (null pointer parameter)
  • ERR_FSAL_INVAL (missing attributes : mode, group, user,...)
  • ERR_FSAL_SERVERFAULT (unexpected error)

Definition at line 153 of file common_methods.c.

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

Definition at line 174 of file common_methods.c.

fsal_status_t COMMON_set_quota_noquota ( fsal_path_t pfsal_path,
int  quota_type,
fsal_uid_t  fsal_uid,
fsal_quota_t pquot,
fsal_quota_t presquot 
)

FSAL_get_quota : Gets the quota for a given path.

Parameters:
pfsal_pathpath to the filesystem whose quota are requested
fsal_uiduid for the user whose quota are requested
pquota(input): pointer to the structure containing the wanted quotas
presquot(output) pointer to the structure containing the resulting quotas
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • Another error code if an error occured.

Definition at line 510 of file common_methods.c.

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

FSAL_test_setattr_access : test if a client identified by cred can access setattr on the object knowing its attributes and parent's attributes. The following fields of the object_attributes structures 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 VFSFSAL_getattrs, for example.

Parameters:
cred(in fsal_cred_t *) user's identifier.
candidate_attrbutesthe attributes we want to set on the object
object_attributes(in fsal_attrib_list_t *) the cached attributes for the object.
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_ACCESS (Permission denied)
  • ERR_FSAL_FAULT (null pointer parameter)
  • ERR_FSAL_INVAL (missing attributes : mode, group, user,...)
  • ERR_FSAL_SERVERFAULT (unexpected error)

Definition at line 128 of file common_methods.c.

fsal_status_t COMMON_SetDefault_FS_common_parameter ( fsal_parameter_t out_parameter)

Definition at line 642 of file common_methods.c.

fsal_status_t COMMON_SetDefault_FSAL_parameter ( fsal_parameter_t out_parameter)

Definition at line 630 of file common_methods.c.

fsal_status_t COMMON_share_op_notsupp ( 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 1022 of file common_methods.c.

fsal_status_t COMMON_terminate_noerror ( )

Definition at line 612 of file common_methods.c.

fsal_status_t COMMON_unlink_access ( fsal_op_context_t pcontext,
fsal_attrib_list_t pattr 
)

FSAL_unlink_access : test if a client identified by cred can unlink on a directory knowing its attributes

Parameters:
pcontext(in fsal_cred_t *) user's context.
pattrsource directory attributes
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_ACCESS (Permission denied)
  • ERR_FSAL_FAULT (null pointer parameter)
  • ERR_FSAL_INVAL (missing attributes : mode, group, user,...)
  • ERR_FSAL_SERVERFAULT (unexpected error)

Definition at line 222 of file common_methods.c.