nfs-ganesha 1.4

fsal_internal.h

Go to the documentation of this file.
00001 /*
00002  * vim:expandtab:shiftwidth=8:tabstop=8:
00003  *
00004  * Copyright CEA/DAM/DIF  (2008)
00005  * contributeur : Philippe DENIEL   philippe.deniel@cea.fr
00006  *                Thomas LEIBOVICI  thomas.leibovici@cea.fr
00007  *
00008  *
00009  * This program is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public
00011  * License as published by the Free Software Foundation; either
00012  * version 3 of the License, or (at your option) any later version.
00013  *
00014  * This program is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  * Lesser General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU Lesser General Public
00020  * License along with this library; if not, write to the Free Software
00021  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00022  *
00023  * ---------------------------------------
00024  */
00025 
00035 #include  "fsal.h"
00036 #include <sys/stat.h>
00037 #include "fsal_up.h"
00038 #include "FSAL/common_functions.h"
00039 
00040 /* defined the set of attributes supported with POSIX */
00041 #define GPFS_SUPPORTED_ATTRIBUTES (                                       \
00042           FSAL_ATTR_SUPPATTR | FSAL_ATTR_TYPE     | FSAL_ATTR_SIZE      | \
00043           FSAL_ATTR_FSID     |  FSAL_ATTR_FILEID  | \
00044           FSAL_ATTR_MODE     | FSAL_ATTR_NUMLINKS | FSAL_ATTR_OWNER     | \
00045           FSAL_ATTR_GROUP    | FSAL_ATTR_ATIME    | FSAL_ATTR_RAWDEV    | \
00046           FSAL_ATTR_CTIME    | FSAL_ATTR_MTIME    | FSAL_ATTR_SPACEUSED | \
00047           FSAL_ATTR_CHGTIME | FSAL_ATTR_ACL  )
00048 
00049 /* the following variables must not be defined in fsal_internal.c */
00050 #ifndef FSAL_INTERNAL_C
00051 
00052 /* static filesystem info.
00053  * read access only.
00054  */
00055 extern fsal_staticfsinfo_t global_fs_info;
00056 
00057 /* export_context_t is not given to every function, but
00058  * most functions need to use the open-by-handle funcionality.
00059  */
00060 
00061 #endif
00062 
00066 fsal_status_t fsal_internal_init_global(fsal_init_info_t * fsal_info,
00067                                         fs_common_initinfo_t * fs_common_info,
00068                                         fs_specific_initinfo_t * fs_specific_info);
00069 
00073 void fsal_increment_nbcall(int function_index, fsal_status_t status);
00074 
00078 void fsal_internal_getstats(fsal_statistics_t * output_stats);
00079 
00083 void TakeTokenFSCall();
00084 void ReleaseTokenFSCall();
00085 
00089 fsal_status_t fsal_internal_handle2fd(fsal_op_context_t * p_context,
00090                                       fsal_handle_t * phandle, int *pfd, int oflags);
00091 
00092 fsal_status_t fsal_internal_handle2fd_at(int dirfd,
00093                                          fsal_handle_t * phandle, int *pfd, int oflags);
00094 
00095 fsal_status_t fsal_internal_get_handle_at(int dfd, fsal_name_t * p_fsalname,    /* IN */
00096                                           fsal_handle_t * p_handle /* OUT */ );
00097 
00101 fsal_status_t fsal_internal_get_fh(fsal_op_context_t * p_context,  /* IN */
00102                                    fsal_handle_t * p_dir_handle,   /* IN */
00103                                    fsal_name_t * p_fsalname,       /* IN */
00104                                    fsal_handle_t * p_handle);      /* OUT */
00108 fsal_status_t fsal_readlink_by_handle(fsal_op_context_t * p_context,
00109                                       fsal_handle_t * p_handle, char *__buf, int maxlen);
00110 
00114 fsal_status_t fsal_internal_get_handle(fsal_op_context_t * p_context,   /* IN */
00115                                        fsal_path_t * p_fsalpath,        /* IN */
00116                                        fsal_handle_t * p_handle /* OUT */ );
00117 
00118 fsal_status_t fsal_internal_get_handle_at(int dfd, fsal_name_t * p_fsalname,    /* IN */
00119                                           fsal_handle_t * p_handle /* OUT */ );
00120 
00121 fsal_status_t fsal_internal_fd2handle(int fd,   /* IN */
00122                                       fsal_handle_t * p_handle  /* OUT */
00123     );
00124 
00125 fsal_status_t fsal_internal_link_at(int srcfd, int dfd, char *name);
00126 
00127 fsal_status_t fsal_internal_link_fh(fsal_op_context_t * p_context,
00128                                     fsal_handle_t * p_target_handle,
00129                                     fsal_handle_t * p_dir_handle,
00130                                     fsal_name_t * p_link_name);
00131 
00132 fsal_status_t fsal_internal_stat_name(fsal_op_context_t * p_context,
00133                                     fsal_handle_t * p_dir_handle,
00134                                     fsal_name_t * p_stat_name,
00135                                     struct stat *buf);
00136 
00137 fsal_status_t fsal_internal_unlink(fsal_op_context_t * p_context,
00138                                    fsal_handle_t * p_dir_handle,
00139                                    fsal_name_t * p_stat_name,
00140                                    struct stat *buf);
00141 
00142 fsal_status_t fsal_internal_create(fsal_op_context_t * p_context,
00143                                    fsal_handle_t * p_dir_handle,
00144                                    fsal_name_t * p_stat_name,
00145                                    mode_t mode, dev_t dev,
00146                                    fsal_handle_t * p_new_handle,
00147                                    struct stat *buf);
00148 
00149 fsal_status_t fsal_internal_rename_fh(fsal_op_context_t * p_context,
00150                                     fsal_handle_t * p_old_handle,
00151                                     fsal_handle_t * p_new_handle,
00152                                     fsal_name_t * p_old_name,
00153                                     fsal_name_t * p_new_name);
00154 
00159 fsal_status_t fsal_internal_testAccess(fsal_op_context_t * p_context,   /* IN */
00160                                        fsal_accessflags_t access_type,  /* IN */
00161                                        struct stat *p_buffstat, /* IN, optional */
00162                                        fsal_attrib_list_t *
00163                                        p_object_attributes /* IN, optional */ );
00164 
00165 fsal_status_t fsal_internal_access(fsal_op_context_t * p_context,   /* IN */
00166                                    fsal_handle_t * p_handle,   /* IN */
00167                                    fsal_accessflags_t access_type,  /* IN */
00168                                    fsal_attrib_list_t *p_object_attributes /* IN */ );
00169 
00170 fsal_status_t fsal_stat_by_handle(fsal_op_context_t * p_context,
00171                                   fsal_handle_t * p_handle, struct stat *buf);
00172 
00173 fsal_status_t fsal_get_xstat_by_handle(fsal_op_context_t * p_context,
00174                                        fsal_handle_t * p_handle, gpfsfsal_xstat_t *p_buffxstat);
00175 
00176 fsal_status_t fsal_set_xstat_by_handle(fsal_op_context_t * p_context,
00177                                        fsal_handle_t * p_handle, int attr_valid,
00178                                        int attr_changed, gpfsfsal_xstat_t *p_buffxstat);
00179 
00180 fsal_status_t fsal_check_access_by_mode(fsal_op_context_t * p_context,   /* IN */
00181                                         fsal_accessflags_t access_type,  /* IN */
00182                                         struct stat *p_buffstat /* IN */);
00183 
00184 fsal_status_t fsal_trucate_by_handle(fsal_op_context_t * p_context,
00185                                      fsal_handle_t * p_handle,
00186                                      u_int64_t size);
00187 
00188 /* All the call to FSAL to be wrapped */
00189 fsal_status_t GPFSFSAL_access(fsal_handle_t * p_object_handle,        /* IN */
00190                              fsal_op_context_t * p_context,  /* IN */
00191                              fsal_accessflags_t access_type,    /* IN */
00192                              fsal_attrib_list_t * p_object_attributes /* [ IN/OUT ] */ );
00193 
00194 fsal_status_t GPFSFSAL_getattrs(fsal_handle_t * p_filehandle, /* IN */
00195                                fsal_op_context_t * p_context,        /* IN */
00196                                fsal_attrib_list_t * p_object_attributes /* IN/OUT */ );
00197 
00198 fsal_status_t GPFSFSAL_getattrs_descriptor(fsal_file_t * p_file_descriptor,     /* IN */
00199                                            fsal_handle_t * p_filehandle,        /* IN */
00200                                            fsal_op_context_t * p_context,       /* IN */
00201                                            fsal_attrib_list_t * p_object_attributes /* IN/OUT */ );
00202 
00203 fsal_status_t GPFSFSAL_setattrs(fsal_handle_t * p_filehandle, /* IN */
00204                                fsal_op_context_t * p_context,        /* IN */
00205                                fsal_attrib_list_t * p_attrib_set,       /* IN */
00206                                fsal_attrib_list_t *
00207                                p_object_attributes /* [ IN/OUT ] */ );
00208 
00209 fsal_status_t GPFSFSAL_BuildExportContext(fsal_export_context_t * p_export_context,   /* OUT */
00210                                          fsal_path_t * p_export_path,   /* IN */
00211                                          char *fs_specific_options /* IN */ );
00212 
00213 fsal_status_t GPFSFSAL_CleanUpExportContext(fsal_export_context_t * p_export_context);
00214 
00215 fsal_status_t GPFSFSAL_create(fsal_handle_t * p_parent_directory_handle,      /* IN */
00216                              fsal_name_t * p_filename,  /* IN */
00217                              fsal_op_context_t * p_context,  /* IN */
00218                              fsal_accessmode_t accessmode,      /* IN */
00219                              fsal_handle_t * p_object_handle,        /* OUT */
00220                              fsal_attrib_list_t * p_object_attributes /* [ IN/OUT ] */ );
00221 
00222 fsal_status_t GPFSFSAL_mkdir(fsal_handle_t * p_parent_directory_handle,       /* IN */
00223                             fsal_name_t * p_dirname,    /* IN */
00224                             fsal_op_context_t * p_context,   /* IN */
00225                             fsal_accessmode_t accessmode,       /* IN */
00226                             fsal_handle_t * p_object_handle, /* OUT */
00227                             fsal_attrib_list_t * p_object_attributes /* [ IN/OUT ] */ );
00228 
00229 fsal_status_t GPFSFSAL_link(fsal_handle_t * p_target_handle,  /* IN */
00230                            fsal_handle_t * p_dir_handle,     /* IN */
00231                            fsal_name_t * p_link_name,   /* IN */
00232                            fsal_op_context_t * p_context,    /* IN */
00233                            fsal_attrib_list_t * p_attributes /* [ IN/OUT ] */ );
00234 
00235 fsal_status_t GPFSFSAL_mknode(fsal_handle_t * parentdir_handle,       /* IN */
00236                              fsal_name_t * p_node_name, /* IN */
00237                              fsal_op_context_t * p_context,  /* IN */
00238                              fsal_accessmode_t accessmode,      /* IN */
00239                              fsal_nodetype_t nodetype,  /* IN */
00240                              fsal_dev_t * dev,  /* IN */
00241                              fsal_handle_t * p_object_handle,        /* OUT (handle to the created node) */
00242                              fsal_attrib_list_t * node_attributes /* [ IN/OUT ] */ );
00243 
00244 fsal_status_t GPFSFSAL_opendir(fsal_handle_t * p_dir_handle,  /* IN */
00245                               fsal_op_context_t * p_context, /* IN */
00246                               fsal_dir_t * p_dir_descriptor, /* OUT */
00247                               fsal_attrib_list_t * p_dir_attributes /* [ IN/OUT ] */ );
00248 
00249 fsal_status_t GPFSFSAL_readdir(fsal_dir_t * p_dir_descriptor, /* IN */
00250                               fsal_cookie_t start_position,  /* IN */
00251                               fsal_attrib_mask_t get_attr_mask, /* IN */
00252                               fsal_mdsize_t buffersize, /* IN */
00253                               fsal_dirent_t * p_pdirent,        /* OUT */
00254                               fsal_cookie_t * p_end_position,        /* OUT */
00255                               fsal_count_t * p_nb_entries,      /* OUT */
00256                               fsal_boolean_t * p_end_of_dir /* OUT */ );
00257 
00258 fsal_status_t GPFSFSAL_closedir(fsal_dir_t * p_dir_descriptor /* IN */ );
00259 
00260 fsal_status_t GPFSFSAL_open_by_name(fsal_handle_t * dirhandle,        /* IN */
00261                                    fsal_name_t * filename,      /* IN */
00262                                    fsal_op_context_t * p_context,    /* IN */
00263                                    fsal_openflags_t openflags,  /* IN */
00264                                    fsal_file_t * file_descriptor,    /* OUT */
00265                                    fsal_attrib_list_t *
00266                                    file_attributes /* [ IN/OUT ] */ );
00267 
00268 fsal_status_t GPFSFSAL_open(fsal_handle_t * p_filehandle,     /* IN */
00269                            fsal_op_context_t * p_context,    /* IN */
00270                            fsal_openflags_t openflags,  /* IN */
00271                            fsal_file_t * p_file_descriptor,  /* OUT */
00272                            fsal_attrib_list_t * p_file_attributes /* [ IN/OUT ] */ );
00273 
00274 fsal_status_t GPFSFSAL_read(fsal_file_t * p_file_descriptor,  /* IN */
00275                            fsal_seek_t * p_seek_descriptor,     /* [IN] */
00276                            fsal_size_t buffer_size,     /* IN */
00277                            caddr_t buffer,      /* OUT */
00278                            fsal_size_t * p_read_amount, /* OUT */
00279                            fsal_boolean_t * p_end_of_file /* OUT */ );
00280 
00281 fsal_status_t GPFSFSAL_write(fsal_file_t * p_file_descriptor, /* IN */
00282                             fsal_op_context_t * p_context,     /* IN */
00283                             fsal_seek_t * p_seek_descriptor,    /* IN */
00284                             fsal_size_t buffer_size,    /* IN */
00285                             caddr_t buffer,     /* IN */
00286                             fsal_size_t * p_write_amount /* OUT */ );
00287 
00288 fsal_status_t GPFSFSAL_close(fsal_file_t * p_file_descriptor /* IN */ );
00289 
00290 fsal_status_t GPFSFSAL_dynamic_fsinfo(fsal_handle_t * p_filehandle,   /* IN */
00291                                      fsal_op_context_t * p_context,  /* IN */
00292                                      fsal_dynamicfsinfo_t * p_dynamicinfo /* OUT */ );
00293 
00294 fsal_status_t GPFSFSAL_Init(fsal_parameter_t * init_info /* IN */ );
00295 
00296 fsal_status_t GPFSFSAL_test_access(fsal_op_context_t * p_context,     /* IN */
00297                                   fsal_accessflags_t access_type,       /* IN */
00298                                   fsal_attrib_list_t * p_object_attributes /* IN */ );
00299 
00300 fsal_status_t GPFSFSAL_lookup(fsal_handle_t * p_parent_directory_handle,      /* IN */
00301                              fsal_name_t * p_filename,  /* IN */
00302                              fsal_op_context_t * p_context,  /* IN */
00303                              fsal_handle_t * p_object_handle,        /* OUT */
00304                              fsal_attrib_list_t * p_object_attributes /* [ IN/OUT ] */ );
00305 
00306 fsal_status_t GPFSFSAL_lookupPath(fsal_path_t * p_path,  /* IN */
00307                                  fsal_op_context_t * p_context,      /* IN */
00308                                  fsal_handle_t * object_handle,      /* OUT */
00309                                  fsal_attrib_list_t *
00310                                  p_object_attributes /* [ IN/OUT ] */ );
00311 
00312 fsal_status_t GPFSFSAL_lookupJunction(fsal_handle_t * p_junction_handle,      /* IN */
00313                                      fsal_op_context_t * p_context,  /* IN */
00314                                      fsal_handle_t * p_fsoot_handle, /* OUT */
00315                                      fsal_attrib_list_t *
00316                                      p_fsroot_attributes /* [ IN/OUT ] */ );
00317 
00318 fsal_status_t GPFSFSAL_lock_op( fsal_file_t           * p_file_descriptor,   /* IN */
00319                                 fsal_handle_t         * p_filehandle,        /* IN */
00320                                 fsal_op_context_t     * p_context,           /* IN */
00321                                 void                  * p_owner,             /* IN */
00322                                 fsal_lock_op_t          lock_op,             /* IN */
00323                                 fsal_lock_param_t       request_lock,        /* IN */
00324                                 fsal_lock_param_t     * conflicting_lock     /* OUT */ );
00325 
00326 fsal_status_t GPFSFSAL_share_op( fsal_file_t          * p_file_descriptor,   /* IN */
00327                                  fsal_handle_t        * p_filehandle,        /* IN */
00328                                  fsal_op_context_t    * p_context,           /* IN */
00329                                  void                 * p_owner,             /* IN */
00330                                  fsal_share_param_t     request_share        /* IN */ );
00331 
00332 fsal_status_t GPFSFSAL_rcp(fsal_handle_t * filehandle,        /* IN */
00333                           fsal_op_context_t * p_context,     /* IN */
00334                           fsal_path_t * p_local_path,   /* IN */
00335                           fsal_rcpflag_t transfer_opt /* IN */ );
00336 
00337 fsal_status_t GPFSFSAL_rename(fsal_handle_t * p_old_parentdir_handle, /* IN */
00338                              fsal_name_t * p_old_name,  /* IN */
00339                              fsal_handle_t * p_new_parentdir_handle, /* IN */
00340                              fsal_name_t * p_new_name,  /* IN */
00341                              fsal_op_context_t * p_context,  /* IN */
00342                              fsal_attrib_list_t * p_src_dir_attributes, /* [ IN/OUT ] */
00343                              fsal_attrib_list_t * p_tgt_dir_attributes /* [ IN/OUT ] */ );
00344 
00345 void GPFSFSAL_get_stats(fsal_statistics_t * stats,       /* OUT */
00346                        fsal_boolean_t reset /* IN */ );
00347 
00348 fsal_status_t GPFSFSAL_readlink(fsal_handle_t * p_linkhandle, /* IN */
00349                                fsal_op_context_t * p_context,        /* IN */
00350                                fsal_path_t * p_link_content,    /* OUT */
00351                                fsal_attrib_list_t * p_link_attributes /* [ IN/OUT ] */ );
00352 
00353 fsal_status_t GPFSFSAL_symlink(fsal_handle_t * p_parent_directory_handle,     /* IN */
00354                               fsal_name_t * p_linkname, /* IN */
00355                               fsal_path_t * p_linkcontent,      /* IN */
00356                               fsal_op_context_t * p_context, /* IN */
00357                               fsal_accessmode_t accessmode,     /* IN (ignored) */
00358                               fsal_handle_t * p_link_handle, /* OUT */
00359                               fsal_attrib_list_t * p_link_attributes /* [ IN/OUT ] */ );
00360 
00361 int GPFSFSAL_handlecmp(fsal_handle_t * handle1, fsal_handle_t * handle2,
00362                       fsal_status_t * status);
00363 
00364 unsigned int GPFSFSAL_Handle_to_HashIndex(fsal_handle_t * p_handle,
00365                                          unsigned int cookie,
00366                                          unsigned int alphabet_len,
00367                                          unsigned int index_size);
00368 
00369 unsigned int GPFSFSAL_Handle_to_RBTIndex(fsal_handle_t * p_handle, unsigned int cookie);
00370 
00371 fsal_status_t GPFSFSAL_DigestHandle(fsal_export_context_t * p_expcontext,     /* IN */
00372                                    fsal_digesttype_t output_type,       /* IN */
00373                                    fsal_handle_t * p_in_fsal_handle, /* IN */
00374                                    struct fsal_handle_desc *fh_desc /* OUT */ );
00375 
00376 fsal_status_t GPFSFSAL_ExpandHandle(fsal_export_context_t * p_expcontext, /*IN*/
00377                                    fsal_digesttype_t in_type,   /* IN */
00378                                    struct fsal_handle_desc *fh_desc /*IN OUT*/);
00379 
00380 fsal_status_t GPFSFSAL_SetDefault_FS_specific_parameter(fsal_parameter_t * out_parameter);
00381 
00382 fsal_status_t GPFSFSAL_load_FS_specific_parameter_from_conf(config_file_t in_config,
00383                                                            fsal_parameter_t *
00384                                                            out_parameter);
00385 
00386 fsal_status_t GPFSFSAL_truncate(fsal_handle_t * p_filehandle, /* IN */
00387                                fsal_op_context_t * p_context,        /* IN */
00388                                fsal_size_t length,      /* IN */
00389                                fsal_file_t * file_descriptor,        /* Unused in this FSAL */
00390                                fsal_attrib_list_t *
00391                                p_object_attributes /* [ IN/OUT ] */ );
00392 
00393 fsal_status_t GPFSFSAL_unlink(fsal_handle_t * p_parent_directory_handle,      /* IN */
00394                              fsal_name_t * p_object_name,       /* IN */
00395                              fsal_op_context_t * p_context,  /* IN */
00396                              fsal_attrib_list_t *
00397                              p_parent_directory_attributes /* [IN/OUT ] */ );
00398 
00399 char *GPFSFSAL_GetFSName();
00400 
00401 fsal_status_t GPFSFSAL_GetXAttrAttrs(fsal_handle_t * p_objecthandle,  /* IN */
00402                                     fsal_op_context_t * p_context,   /* IN */
00403                                     unsigned int xattr_id,      /* IN */
00404                                     fsal_attrib_list_t * p_attrs);
00405 
00406 fsal_status_t GPFSFSAL_ListXAttrs(fsal_handle_t * p_objecthandle,     /* IN */
00407                                  unsigned int cookie,   /* IN */
00408                                  fsal_op_context_t * p_context,      /* IN */
00409                                  fsal_xattrent_t * xattrs_tab,  /* IN/OUT */
00410                                  unsigned int xattrs_tabsize,   /* IN */
00411                                  unsigned int *p_nb_returned,   /* OUT */
00412                                  int *end_of_list /* OUT */ );
00413 
00414 fsal_status_t GPFSFSAL_GetXAttrValueById(fsal_handle_t * p_objecthandle,      /* IN */
00415                                         unsigned int xattr_id,  /* IN */
00416                                         fsal_op_context_t * p_context,       /* IN */
00417                                         caddr_t buffer_addr,    /* IN/OUT */
00418                                         size_t buffer_size,     /* IN */
00419                                         size_t * p_output_size /* OUT */ );
00420 
00421 fsal_status_t GPFSFSAL_GetXAttrIdByName(fsal_handle_t * p_objecthandle,       /* IN */
00422                                        const fsal_name_t * xattr_name,  /* IN */
00423                                        fsal_op_context_t * p_context,        /* IN */
00424                                        unsigned int *pxattr_id /* OUT */ );
00425 
00426 fsal_status_t GPFSFSAL_GetXAttrValueByName(fsal_handle_t * p_objecthandle,    /* IN */
00427                                           const fsal_name_t * xattr_name,       /* IN */
00428                                           fsal_op_context_t * p_context,     /* IN */
00429                                           caddr_t buffer_addr,  /* IN/OUT */
00430                                           size_t buffer_size,   /* IN */
00431                                           size_t * p_output_size /* OUT */ );
00432 
00433 fsal_status_t GPFSFSAL_SetXAttrValue(fsal_handle_t * p_objecthandle,  /* IN */
00434                                     const fsal_name_t * xattr_name,     /* IN */
00435                                     fsal_op_context_t * p_context,   /* IN */
00436                                     caddr_t buffer_addr,        /* IN */
00437                                     size_t buffer_size, /* IN */
00438                                     int create /* IN */ );
00439 
00440 fsal_status_t GPFSFSAL_SetXAttrValueById(fsal_handle_t * p_objecthandle,      /* IN */
00441                                         unsigned int xattr_id,  /* IN */
00442                                         fsal_op_context_t * p_context,       /* IN */
00443                                         caddr_t buffer_addr,    /* IN */
00444                                         size_t buffer_size /* IN */ );
00445 
00446 fsal_status_t GPFSFSAL_RemoveXAttrById(fsal_handle_t * p_objecthandle,        /* IN */
00447                                       fsal_op_context_t * p_context, /* IN */
00448                                       unsigned int xattr_id) /* IN */ ;
00449 
00450 fsal_status_t GPFSFSAL_RemoveXAttrByName(fsal_handle_t * p_objecthandle,      /* IN */
00451                                         fsal_op_context_t * p_context,       /* IN */
00452                                         const fsal_name_t * xattr_name) /* IN */ ;
00453 
00454 int GPFSFSAL_GetXattrOffsetSetable( void ) ;
00455 
00456 unsigned int GPFSFSAL_GetFileno(fsal_file_t * pfile);
00457 
00458 fsal_status_t GPFSFSAL_commit( fsal_file_t * p_file_descriptor,
00459                              fsal_off_t    offset,
00460                              fsal_size_t   size ) ;
00461 
00462 
00463 #ifdef _USE_FSAL_UP
00464 fsal_status_t GPFSFSAL_UP_Init( fsal_up_event_bus_parameter_t * pebparam,      /* IN */
00465                                 fsal_up_event_bus_context_t * pupebcontext     /* OUT */);
00466 fsal_status_t GPFSFSAL_UP_AddFilter( fsal_up_event_bus_filter_t * pupebfilter,  /* IN */
00467                                      fsal_up_event_bus_context_t * pupebcontext /* INOUT */ );
00468 fsal_status_t GPFSFSAL_UP_GetEvents( struct glist_head * pevent_head,
00469                                      fsal_count_t * event_nb,                     /* IN */
00470                                      fsal_time_t timeout,                         /* IN */
00471                                      fsal_count_t * peventfound,                  /* OUT */
00472                                      fsal_up_event_bus_context_t * pupebcontext   /* IN */ );
00473 #endif /* _USE_FSAL_UP */