nfs-ganesha 1.4

Todo List

Member _9p_getlock (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
This function does nothing for the moment. Make it compliant with fcntl( F_GETLCK, ...

Member _9p_lopen (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
: Maybe other types (FIFO, sOCKET,...) may require to be opened too

Member _9p_mknod (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)

BUGAZOMEU the gid parameter is not used yet

BUGAZOMEU For wanting of something better

Member BuildDefaultExport ()
set default values here

Member cache_content_read_conf_client_parameter (config_file_t in_config, cache_content_client_parameter_t *pparam)
: BUGAZOMEU: to be removed

Member cache_content_refresh (cache_content_entry_t *pentry, cache_content_client_t *pclient, fsal_op_context_t *pcontext, cache_content_refresh_how_t how, cache_content_status_t *pstatus)
: BUGAZOMEU: gestion de coherence de date a mettre en place

Member cmdnfs_fattr2 (cmdnfs_encodetype_t encodeflag, int argc, char **argv, int indent, FILE *out_stream, caddr_t p_nfs_struct)

Member cmdnfs_fattr3 (cmdnfs_encodetype_t encodeflag, int argc, char **argv, int indent, FILE *out_stream, caddr_t p_nfs_struct)

Member cmdnfs_mountres3 (cmdnfs_encodetype_t encodeflag, int argc, char **argv, int indent, FILE *out_stream, caddr_t p_nfs_struct)
Convert status to error code

Member CONF_LABEL_PNFS
: must be removed when placed in src/PNFS

Member config_ParseFile (char *file_path)
: ganesha_yyparse fait exit en cas d'erreur. Remedier au probleme.

Member FLAG_EXPORT_ID
: add encrypt handles option

Member fsal2hpss_attribset (hpssfsal_handle_t *p_fsal_handle, fsal_attrib_list_t *p_attrib_set, hpss_fileattrbits_t *p_hpss_attrmask, hpss_Attrs_t *p_hpss_attrs)

: Define some constants for settable and supported attributes.

ACL management

Member fsal_is_retryable (fsal_status_t status)

: ERR_FSAL_DELAY : The only retryable error ?

: ERR_FSAL_DELAY : The only retryable error ?

: ERR_FSAL_DELAY : The only retryable error ?

Member FSAL_proxy_change_user (proxyfsal_op_context_t *p_thr_context)
: Nothing done now. Once RPCSEC_GSS will have explicit management, return an error as defaut behavior: non supported auth flavor

Member FSAL_proxy_clientid_renewer_thread (void *Arg)

: use getattr to have an actual value of server's lease duration

: use getattr to have an actual value of server's lease duration

Member FSAL_test_access (fsal_op_context_t *p_context, fsal_accessflags_t access_type, fsal_attrib_list_t *object_attributes)
: ACLs.

Member fuse2fsal_error (int errorcode, int noent_is_stale)
: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

Member FUSEFSAL_test_access (fsal_op_context_t *p_context, fsal_accessflags_t access_type, fsal_attrib_list_t *p_object_attributes)
: ACLs.

Member get_clientid_owner (clientid4 clientid, state_owner_t **clientid_owner)
FSF: I'm not really sure about the refcounting here...

Member GPFSFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member GPFSFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member Gssrpc__svcauth_gss (struct svc_req *rqst, struct rpc_msg *msg, bool_t *no_dispatch)
Think about restoring the correct lines

Member handlemap_db_init (const char *db_dir, const char *tmp_dir, unsigned int db_count, unsigned int nb_dbop_prealloc, int synchronous_insert)
ici coller out_parameter->fs_specific_info.hdlmap_nb_db_op_prealloc

Member hpss2fsal_attributes (ns_ObjHandle_t *p_hpss_handle_in, hpss_Attrs_t *p_hpss_attr_in, fsal_attrib_list_t *p_fsalattr_out)
: This doesn't convert ACLs for the moment.

Member hpss2fsal_error (int hpss_errorcode)
: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

Member HPSSFSAL_lookupPath (fsal_path_t *p_path, hpssfsal_op_context_t *p_context, hpssfsal_handle_t *object_handle, fsal_attrib_list_t *object_attributes)
: Be carefull about junction crossing, symlinks, hardlinks,...

Member HPSSFSAL_read (hpssfsal_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member HPSSFSAL_readdir (hpssfsal_dir_t *p_dir_descriptor, hpssfsal_cookie_t start_position, fsal_attrib_mask_t get_attr_mask, fsal_mdsize_t buffersize, fsal_dirent_t *p_pdirent, hpssfsal_cookie_t *p_end_position, fsal_count_t *p_nb_entries, fsal_boolean_t *p_end_of_dir)

: does handle provide mounted_on_fileid ?

: test returned status

Member HPSSFSAL_setattrs (hpssfsal_handle_t *p_filehandle, hpssfsal_op_context_t *p_context, fsal_attrib_list_t *p_attrib_set, fsal_attrib_list_t *p_object_attributes)

: chown restricted seems to be OK.

voir pourquoi hpss_fattr_out ne contient pas ce qu'il devrait contenir

Member HPSSFSAL_test_access (hpssfsal_op_context_t *p_context, fsal_accessflags_t access_type, fsal_attrib_list_t *object_attributes)

: test that needed attributes are in the structure

: ACLs.

Member HPSSFSAL_write (hpssfsal_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member InitNFSClient (cmdnfs_thr_info_t *p_thr_info)
No secondary groups support.

Member LUSTREFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member LUSTREFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member main (int argc, char *argv[])

: this part of the code and this utility has to be checked

: this part of the code and this utility has to be checked

Member MFSAL_create_check_perms (mfsl_object_t *target_handle, fsal_name_t *p_dirname, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_attrib_list_t *object_attributes)
: put some stuff in this function

Member MFSAL_link_check_perms (mfsl_object_t *target_handle, mfsl_object_t *dir_handle, fsal_name_t *p_link_name, mfsl_object_specific_data_t *tgt_pspecdata, mfsl_object_specific_data_t *dir_pspecdata, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context)
: put some stuff in this function

Member MFSAL_mkdir_check_perms (mfsl_object_t *target_handle, fsal_name_t *p_dirname, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_attrib_list_t *object_attributes)
: put some stuff in this function

Member MFSAL_rename_check_perms (mfsl_object_t *old_parentdir_handle, fsal_name_t *p_old_name, fsal_attrib_list_t *src_dir_attributes, mfsl_object_t *new_parentdir_handle, fsal_name_t *p_new_name, fsal_attrib_list_t *tgt_dir_attributes, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context)
: put some stuff in this function

Member MFSAL_symlink_check_perms (mfsl_object_t *target_handle, fsal_name_t *p_dirname, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_attrib_list_t *object_attributes)
: put some stuff in this function

Member MFSAL_unlink_check_perms (mfsl_object_t *dir_handle, mfsl_object_specific_data_t *dir_pspecdata, fsal_name_t *p_object_name, fsal_attrib_list_t *dir_attributes, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context)
: put some stuff in this function

Member MFSL_create (mfsl_object_t *parent_directory_handle, fsal_name_t *p_dirname, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_accessmode_t accessmode, mfsl_object_t *object_handle, fsal_attrib_list_t *object_attributes, fsal_attrib_list_t *parent_attributes)
: there may be a coefficient to be applied here

Member MFSL_link (mfsl_object_t *target_handle, mfsl_object_t *dir_handle, fsal_name_t *p_link_name, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_attrib_list_t *tgt_attributes, fsal_attrib_list_t *dir_attributes)

: there may be a coefficient to be applied here

: there may be a coefficient to be applied here

Member MFSL_mkdir (mfsl_object_t *parent_directory_handle, fsal_name_t *p_dirname, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_accessmode_t accessmode, mfsl_object_t *object_handle, fsal_attrib_list_t *object_attributes, fsal_attrib_list_t *parent_attributes)
: there may be a coefficient to be applied here

Member MFSL_open_by_name (mfsl_object_t *dirhandle, fsal_name_t *filename, 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)
: quick and dirty work-around

Member MFSL_rename (mfsl_object_t *old_parentdir_handle, fsal_name_t *p_old_name, mfsl_object_t *new_parentdir_handle, fsal_name_t *p_new_name, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_attrib_list_t *src_dir_attributes, fsal_attrib_list_t *tgt_dir_attributes)

: there may be a coefficient to be applied here

: there may be a coefficient to be applied here

Member MFSL_setattrs (mfsl_object_t *filehandle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_attrib_list_t *attrib_set, fsal_attrib_list_t *object_attributes)
: there may be a coefficient to be applied here

Member MFSL_truncate (mfsl_object_t *filehandle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_size_t length, fsal_file_t *file_descriptor, fsal_attrib_list_t *object_attributes)
: there may be a coefficient to be applied here

Member MFSL_unlink (mfsl_object_t *dir_handle, fsal_name_t *p_object_name, mfsl_object_t *object_handle, fsal_op_context_t *p_context, mfsl_context_t *p_mfsl_context, fsal_attrib_list_t *dir_attributes)
: there may be a coefficient to be applied here

Member nfs2_FSALattr_To_Fattr (exportlist_t *pexport, fsal_attrib_list_t *pFSAL_attr, fattr2 *pFattr)
mode mask ?

Member nfs3_Errno (cache_inode_status_t error)
: Check if this works by making stress tests

Member nfs3_Errno_state (state_status_t error)
: Check if this works by making stress tests

Member nfs41_op_create_session (struct nfs_argop4 *op, compound_data_t *data, struct nfs_resop4 *resp)
: BUGAZOMEU Gerer les parametres de secu

Member nfs41_op_exchange_id (struct nfs_argop4 *op, compound_data_t *data, struct nfs_resop4 *resp)

: plante le client sous windows. Ai-je réellement besoin de cela ????

FSF: old code ifdefed out nfs_compare_clientcred with _NFSV4_COMPARE_CRED_IN_EXCHANGE_ID

FSF: should also check if there is no state

FSF: expire old clientid?

FSF: old code ifdefed out nfs_compare_clientcred with _NFSV4_COMPARE_CRED_IN_EXCHANGE_ID

: this is not implemented, the things it updates aren't even tracked

FSF: not the best way to handle this but keeps from crashing

FSF: not the best way to handle this but keeps from crashing

Member nfs41_op_sequence (struct nfs_argop4 *op, compound_data_t *data, struct nfs_resop4 *resp)
FSF: there is a tiny window here... should have a ref count on session

Member nfs4_Check_Stateid (stateid4 *pstate, cache_entry_t *pentry, state_t **ppstate, compound_data_t *data, char flags, const char *tag)
fsf: maybe change to simple comparison pstate->seqid < pstate2->state_seqid as good enough and maybe makes pynfs happy.

Member nfs4_Compound (nfs_arg_t *parg, exportlist_t *pexport, fsal_op_context_t *pcontext, nfs_worker_data_t *pworker, struct svc_req *preq, nfs_res_t *pres)
BUGAZOMEU: Reminder: Stats on NFSv4 operations are to be set here

Member nfs4_FSALattr_To_Fattr (exportlist_t *pexport, fsal_attrib_list_t *pattr, fattr4 *Fattr, compound_data_t *data, nfs_fh4 *objFH, bitmap4 *Bitmap)
: not the right answer, actual quotas should be implemented

Member nfs4_op_access_xattr (struct nfs_argop4 *op, compound_data_t *data, struct nfs_resop4 *resp)
think about making this RW, it is RO for now

Member nfs4_op_read (struct nfs_argop4 *op, compound_data_t *data, struct nfs_resop4 *resp)
: this piece of code looks a bit suspicious (see Rong's mail)

Member nfs4_op_setattr (struct nfs_argop4 *op, compound_data_t *data, struct nfs_resop4 *resp)
: check correctness of this block... looks suspicious

Member nfs4_PseudoToFattr (pseudofs_entry_t *psfsp, fattr4 *Fattr, compound_data_t *data, nfs_fh4 *objFH, bitmap4 *Bitmap)
: not the right answer, actual quotas should be implemented

Member nfs4_XattrToFattr (fattr4 *Fattr, compound_data_t *data, nfs_fh4 *objFH, bitmap4 *Bitmap)
: not the right answer, actual quotas should be implemented

Member nfs_check_param_consistency ()
BUGAZOMEU: check we don't have twice the same export id in the export list

Member nfs_init (char *filename, int flag_v, FILE *output)
Are there other things to initialize ?

Member nfs_RetryableError (cache_inode_status_t cache_status)
: Not implemented for NOW BUGAZEOMEU

Member PARALLEL_FS_pnfs_layoutget (LAYOUTGET4args *playoutgetargs, compound_data_t *data, LAYOUTGET4res *playoutgetres)

manages more than one segment

It should be better to use xdr_nfsv4_1_file_layout4 on a xdrmem stream

: this part of the code is to be reviewed

Member posix2fsal_error (int posix_errorcode)

: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

: The EBADF error also happens when file is opened for reading, and we try writting in it. In this case, we return ERR_FSAL_NOT_OPENED, but it doesn't seems to be a correct error translation.

Member POSIXFSAL_lookupPath (fsal_path_t *p_path, fsal_op_context_t *context, fsal_handle_t *object_hdl, fsal_attrib_list_t *object_attributes)
: Be carefull about junction crossing, symlinks, hardlinks,...

Member POSIXFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member POSIXFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member PROXYFSAL_getattrs (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_attrib_list_t *p_object_attributes)
BUGAZOMEU Cleaner supported_attributes to be put here

Member PROXYFSAL_rcp (fsal_handle_t *filehandle, fsal_op_context_t *p_context, fsal_path_t *p_local_path, fsal_rcpflag_t transfer_opt)
: put a function in fsal_convert.c that convert your local filesystem errors to an FSAL error code. So you will have a call like : Return( unix2fsal_error(errno) , errno , INDEX_FSAL_rcp );

Member PROXYFSAL_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)
: use NFS4_OP_VERIFY to implement a cache validator, BUGAZOMEU

Member PROXYFSAL_test_access (fsal_op_context_t *p_context, fsal_accessflags_t access_type, fsal_attrib_list_t *object_attributes)
: ACLs.

Member reaper_thread (void *UnusedArg)
: should this be configurable?

Member VFSFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member VFSFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member worker_thread (void *IndexArg)
: check if this does not produce memleak as 9P is used

Member XFSFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member XFSFSAL_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)

: manage fsal_size_t to size_t convertion

: manage ssize_t to fsal_size_t convertion

Member ZFSFSAL_test_access (fsal_op_context_t *p_context, fsal_accessflags_t access_type, fsal_attrib_list_t *object_attributes)
: ACLs.