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.