nfs-ganesha 1.4
Defines | Functions | Variables

mfsl_async.c File Reference

#include "log.h"
#include "fsal_types.h"
#include "fsal.h"
#include "mfsl_types.h"
#include "mfsl.h"
#include "common_utils.h"
#include <pthread.h>
#include <errno.h>

Go to the source code of this file.

Defines

#define NB_DIRENT_CLEAN   100

Functions

void constructor_preacreated_entries (void *ptr, void *parameters)
fsal_status_t mfsl_async_init_symlinkdir (fsal_op_context_t *pcontext)
fsal_status_t mfsl_async_init_clean_precreated_objects (fsal_op_context_t *pcontext)
fsal_status_t mfsl_async_init_precreated_directories (fsal_op_context_t *pcontext, pool_t *pool_dirs)
fsal_status_t mfsl_async_init_precreated_files (fsal_op_context_t *pcontext, pool_t *pool_files)
fsal_status_t MFSL_PrepareContext (fsal_op_context_t *pcontext)
fsal_status_t MFSL_GetContext (mfsl_context_t *pcontext, fsal_op_context_t *pfsal_context)
fsal_status_t MFSL_ASYNC_GetSyncletContext (mfsl_synclet_context_t *pcontext, fsal_op_context_t *pfsal_context)
fsal_status_t MFSL_ASYNC_RefreshContextDirs (mfsl_context_t *pcontext, fsal_op_context_t *pfsal_context)
fsal_status_t MFSL_ASYNC_RefreshContextFiles (mfsl_context_t *pcontext, fsal_op_context_t *pfsal_context)
fsal_status_t MFSL_RefreshContext (mfsl_context_t *pcontext, fsal_op_context_t *pfsal_context)
fsal_status_t MFSL_ASYNC_RefreshSyncletContext (mfsl_synclet_context_t *pcontext, fsal_op_context_t *pfsal_context)
int MFSL_ASYNC_is_synced (mfsl_object_t *mobject)
fsal_status_t MFSL_lookupPath (fsal_path_t *p_path, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, mfsl_object_t *object_handle, fsal_attrib_list_t *object_attributes)
fsal_status_t MFSL_lookupJunction (mfsl_object_t *p_junction_handle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, mfsl_object_t *p_fsoot_handle, fsal_attrib_list_t *p_fsroot_attributes)
fsal_status_t MFSL_access (mfsl_object_t *object_handle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_accessflags_t access_type, fsal_attrib_list_t *object_attributes)
fsal_status_t MFSL_opendir (mfsl_object_t *dir_handle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_dir_t *dir_descriptor, fsal_attrib_list_t *dir_attributes)
fsal_status_t MFSL_readdir (fsal_dir_t *dir_descriptor, fsal_cookie_t start_position, fsal_attrib_mask_t get_attr_mask, fsal_mdsize_t buffersize, fsal_dirent_t *pdirent, fsal_cookie_t *end_position, fsal_count_t *nb_entries, fsal_boolean_t *end_of_dir, mfsl_context_t *p_mfsl_context)
fsal_status_t MFSL_closedir (fsal_dir_t *dir_descriptor, mfsl_context_t *p_mfsl_context)
fsal_status_t MFSL_open (mfsl_object_t *filehandle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_openflags_t openflags, fsal_file_t *file_descriptor, fsal_attrib_list_t *file_attributes)
fsal_status_t MFSL_open_by_fileid (mfsl_object_t *filehandle, fsal_u64_t fileid, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_openflags_t openflags, fsal_file_t *file_descriptor, fsal_attrib_list_t *file_attributes)
fsal_status_t MFSL_read (fsal_file_t *file_descriptor, fsal_seek_t *seek_descriptor, fsal_size_t buffer_size, caddr_t buffer, fsal_size_t *read_amount, fsal_boolean_t *end_of_file, mfsl_context_t *p_mfsl_context)
fsal_status_t MFSL_write (fsal_file_t *file_descriptor, fsal_seek_t *seek_descriptor, fsal_size_t buffer_size, caddr_t buffer, fsal_size_t *write_amount, mfsl_context_t *p_mfsl_context)
fsal_status_t MFSL_close (fsal_file_t *file_descriptor, mfsl_context_t *p_mfsl_context)
fsal_status_t MFSL_commit (mfsl_file_t *file_descriptor, void *pextra)
fsal_status_t MFSL_close_by_fileid (fsal_file_t *file_descriptor, fsal_u64_t fileid, mfsl_context_t *p_mfsl_context)
fsal_status_t MFSL_readlink (mfsl_object_t *linkhandle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_path_t *p_link_content, fsal_attrib_list_t *link_attributes)
fsal_status_t MFSL_mknode (mfsl_object_t *parentdir_handle, fsal_name_t *p_node_name, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_accessmode_t accessmode, fsal_nodetype_t nodetype, fsal_dev_t *dev, mfsl_object_t *p_object_handle, fsal_attrib_list_t *node_attributes)
fsal_status_t MFSL_rcp (mfsl_object_t *filehandle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_path_t *p_local_path, fsal_rcpflag_t transfer_opt)
fsal_status_t MFSL_terminate (void)

Variables

mfsl_parameter_t mfsl_param
fsal_handle_t dir_handle_precreate
unsigned int dir_handle_set = 0
unsigned int end_of_mfsl = FALSE
fsal_handle_t tmp_symlink_dirhandle

Define Documentation

#define NB_DIRENT_CLEAN   100

mfsl_async_init_clean_precreated_objects: deletes every previously allocated object (allocation done by a former instance of the server).

Deletes every previously allocated object (allocation done by a former instance of the server).

Parameters:
pcontext[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status

Definition at line 115 of file mfsl_async.c.


Function Documentation

void constructor_preacreated_entries ( void *  ptr,
void *  parameters 
)

Definition at line 59 of file mfsl_async.c.

fsal_status_t MFSL_access ( mfsl_object_t object_handle,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
fsal_accessflags_t  access_type,
fsal_attrib_list_t object_attributes 
)

Definition at line 681 of file mfsl_async.c.

fsal_status_t MFSL_ASYNC_GetSyncletContext ( mfsl_synclet_context_t pcontext,
fsal_op_context_t pfsal_context 
)

MFSL_GetSyncletContext: Creates a MFSL context for a synclet.

Creates a MFSL context for a synclet.

Parameters:
pcontext[INOUT] pointer to MFSL context to be used
pfsal_context[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status

Definition at line 472 of file mfsl_async.c.

fsal_status_t mfsl_async_init_clean_precreated_objects ( fsal_op_context_t pcontext)

Definition at line 117 of file mfsl_async.c.

fsal_status_t mfsl_async_init_precreated_directories ( fsal_op_context_t pcontext,
pool_t pool_dirs 
)

mfsl_async_init_precreated_directories: allocate pre-created directories for asynchronous create.

Allocate pre-created directories for asynchronous create.

Parameters:
pcontext[INOUT] pointer to FSAL context to be used
pool_dirs[INOUT] pointer to MFSL precreated entries to be created
Returns:
a FSAL status

Definition at line 297 of file mfsl_async.c.

fsal_status_t mfsl_async_init_precreated_files ( fsal_op_context_t pcontext,
pool_t pool_files 
)

mfsl_async_init_precreated_files: allocate pre-created files for asynchronous create.

Allocate pre-created files for asynchronous create.

Parameters:
pcontext[INOUT] pointer to FSAL context to be used
pool_file[INOUT] pointer to MFSL precreated entries to be created
Returns:
a FSAL status

Definition at line 355 of file mfsl_async.c.

fsal_status_t mfsl_async_init_symlinkdir ( fsal_op_context_t pcontext)

Definition at line 81 of file mfsl_async.c.

int MFSL_ASYNC_is_synced ( mfsl_object_t mobject)

MFSL_ASYNC_is_synced: returns TRUE if the object is synced, FALSE is asynchronous.

Returns TRUE if the object is synced, FALSE is asynchronous.

Parameters:
mobject[IN] pointer to MFSL object to be tested
Returns:
TRUE if the object is synced, FALSE is asynchronous.

Definition at line 638 of file mfsl_async.c.

fsal_status_t MFSL_ASYNC_RefreshContextDirs ( mfsl_context_t pcontext,
fsal_op_context_t pfsal_context 
)

MFSL_ASYNC_RefreshContextDirs: Refreshes the pool of pre-allocated directories for a MFSL context.

Refreshes the pool of pre-allocated directories for a MFSL conte

Parameters:
pcontext[INOUT] pointer to MFSL context to be used
pfsal_context[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status

Definition at line 498 of file mfsl_async.c.

fsal_status_t MFSL_ASYNC_RefreshContextFiles ( mfsl_context_t pcontext,
fsal_op_context_t pfsal_context 
)

MFSL_ASYNC_RefreshContextFiles: Refreshes the pool of pre-allocated files for a MFSL context.

Refreshes the pool of pre-allocated files for a MFSL conte

Creates a MFSL context for a thread.

Parameters:
pcontext[INOUT] pointer to MFSL context to be used
pfsal_context[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status

Definition at line 536 of file mfsl_async.c.

fsal_status_t MFSL_ASYNC_RefreshSyncletContext ( mfsl_synclet_context_t pcontext,
fsal_op_context_t pfsal_context 
)

MFSL_ASYNC_RefreshSyncletContext: Refreshes a MFSL context for a synclet.

Refreshes a MFSL context for a synclet.

Parameters:
pcontext[INOUT] pointer to MFSL context to be used
pfsal_context[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status

Definition at line 616 of file mfsl_async.c.

fsal_status_t MFSL_close ( fsal_file_t file_descriptor,
mfsl_context_t p_mfsl_context 
)

Definition at line 796 of file mfsl_async.c.

fsal_status_t MFSL_close_by_fileid ( fsal_file_t file_descriptor,
fsal_u64_t  fileid,
mfsl_context_t p_mfsl_context 
)

Definition at line 809 of file mfsl_async.c.

fsal_status_t MFSL_closedir ( fsal_dir_t dir_descriptor,
mfsl_context_t p_mfsl_context 
)

Definition at line 735 of file mfsl_async.c.

fsal_status_t MFSL_commit ( mfsl_file_t file_descriptor,
void *  pextra 
)

Definition at line 803 of file mfsl_async.c.

fsal_status_t MFSL_GetContext ( mfsl_context_t pcontext,
fsal_op_context_t pfsal_context 
)

MFSL_GetContext: Creates a MFSL context for a thead.

Creates a MFSL context for a thread.

Parameters:
pcontext[INOUT] pointer to MFSL context to be used
pfsal_context[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status

Definition at line 429 of file mfsl_async.c.

fsal_status_t MFSL_lookupJunction ( mfsl_object_t p_junction_handle,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
mfsl_object_t p_fsoot_handle,
fsal_attrib_list_t p_fsroot_attributes 
)

Definition at line 670 of file mfsl_async.c.

fsal_status_t MFSL_lookupPath ( fsal_path_t p_path,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
mfsl_object_t object_handle,
fsal_attrib_list_t object_attributes 
)

Definition at line 656 of file mfsl_async.c.

fsal_status_t MFSL_mknode ( mfsl_object_t parentdir_handle,
fsal_name_t p_node_name,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
fsal_accessmode_t  accessmode,
fsal_nodetype_t  nodetype,
fsal_dev_t dev,
mfsl_object_t p_object_handle,
fsal_attrib_list_t node_attributes 
)

Definition at line 832 of file mfsl_async.c.

fsal_status_t MFSL_open ( mfsl_object_t filehandle,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
fsal_openflags_t  openflags,
fsal_file_t file_descriptor,
fsal_attrib_list_t file_attributes 
)

Definition at line 744 of file mfsl_async.c.

fsal_status_t MFSL_open_by_fileid ( mfsl_object_t filehandle,
fsal_u64_t  fileid,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
fsal_openflags_t  openflags,
fsal_file_t file_descriptor,
fsal_attrib_list_t file_attributes 
)

Definition at line 759 of file mfsl_async.c.

fsal_status_t MFSL_opendir ( mfsl_object_t dir_handle,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
fsal_dir_t dir_descriptor,
fsal_attrib_list_t dir_attributes 
)

Definition at line 698 of file mfsl_async.c.

fsal_status_t MFSL_PrepareContext ( fsal_op_context_t pcontext)

MFSL_PrepareContext: Prepares a MFSL context for a thead.

Prepares a MFSL context for a thread.

Parameters:
pcontext[INOUT] pointer to MFSL context to be used
Returns:
a FSAL status

Definition at line 412 of file mfsl_async.c.

fsal_status_t MFSL_rcp ( mfsl_object_t filehandle,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
fsal_path_t p_local_path,
fsal_rcpflag_t  transfer_opt 
)

Definition at line 850 of file mfsl_async.c.

fsal_status_t MFSL_read ( fsal_file_t file_descriptor,
fsal_seek_t seek_descriptor,
fsal_size_t  buffer_size,
caddr_t  buffer,
fsal_size_t read_amount,
fsal_boolean_t end_of_file,
mfsl_context_t p_mfsl_context 
)

Definition at line 772 of file mfsl_async.c.

fsal_status_t MFSL_readdir ( fsal_dir_t dir_descriptor,
fsal_cookie_t  start_position,
fsal_attrib_mask_t  get_attr_mask,
fsal_mdsize_t  buffersize,
fsal_dirent_t pdirent,
fsal_cookie_t end_position,
fsal_count_t nb_entries,
fsal_boolean_t end_of_dir,
mfsl_context_t p_mfsl_context 
)

Definition at line 715 of file mfsl_async.c.

fsal_status_t MFSL_readlink ( mfsl_object_t linkhandle,
fsal_op_context_t p_context,
mfsl_context_t p_mfsl_context,
fsal_path_t p_link_content,
fsal_attrib_list_t link_attributes 
)

Definition at line 815 of file mfsl_async.c.

fsal_status_t MFSL_RefreshContext ( mfsl_context_t pcontext,
fsal_op_context_t pfsal_context 
)

MFSL_RefreshContext: Refreshes a MFSL context for a thead.

Refreshes a MFSL context for a thread.

Parameters:
pcontext[INOUT] pointer to MFSL context to be used
pfsal_context[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status

Definition at line 572 of file mfsl_async.c.

fsal_status_t MFSL_terminate ( void  )

Definition at line 867 of file mfsl_async.c.

fsal_status_t MFSL_write ( fsal_file_t file_descriptor,
fsal_seek_t seek_descriptor,
fsal_size_t  buffer_size,
caddr_t  buffer,
fsal_size_t write_amount,
mfsl_context_t p_mfsl_context 
)

Definition at line 785 of file mfsl_async.c.


Variable Documentation

Definition at line 55 of file mfsl_async.c.

unsigned int dir_handle_set = 0

Definition at line 56 of file mfsl_async.c.

unsigned int end_of_mfsl = FALSE

Definition at line 57 of file mfsl_async.c.

Definition at line 58 of file mfsl_async_init.c.

mfsl_async_init_symlinkdir: gets the filehandle to the directory for symlinks's nursery.

Gets the filehandle to the directory for symlinks's nursery.

Parameters:
pcontext[INOUT] pointer to FSAL context to be used
Returns:
a FSAL status Global variable that will contain the handle to the symlinks's nursery

MFSL_symlink : posts an asynchronous symlink and sets the cached attributes in return.

Posts an asynchronous symlink and sets the cached attributes in return.

Parameters:
parent_directory_handle[IN] mfsl object to be operated on (parent dir for the new file).
p_linkname[IN] new symlink's name
p_linkcontent[IN] new symlink's content
p_context[IN] associated fsal context
p_mfsl_context[INOUT] associated mfsl context
accessmode[IN] access mode for file create
link_handle[INOUT] new mfsl object
link_attributes[INOUT] resulting attributes for new object
Returns:
the same as FSAL_link Global variable that will contain the handle to the symlinks's nursery

Definition at line 79 of file mfsl_async.c.