nfs-ganesha 1.4
Defines | Functions | Variables

fsal_internal.c File Reference

#include "fsal.h"
#include "fsal_internal.h"
#include "SemN.h"
#include "nfs4.h"
#include "HashTable.h"
#include "abstract_mem.h"
#include <pthread.h>

Go to the source code of this file.

Defines

#define FSAL_INTERNAL_C
#define SUPPORTED_ATTRIBUTES
#define SET_INTEGER_PARAM(cfg, p_init_info, _field)
#define SET_BITMAP_PARAM(cfg, p_init_info, _field)
#define SET_BOOLEAN_PARAM(cfg, p_init_info, _field)

Functions

void fsal_increment_nbcall (int function_index, fsal_status_t status)
void fsal_internal_getstats (fsal_statistics_t *output_stats)
void TakeTokenFSCall ()
void ReleaseTokenFSCall ()
fsal_status_t fsal_internal_testAccess (cephfsal_op_context_t *context, fsal_accessflags_t access_type, struct stat *st, fsal_attrib_list_t *object_attributes)
fsal_status_t fsal_internal_init_global (fsal_init_info_t *fsal_info, fs_common_initinfo_t *fs_common_info, fs_specific_initinfo_t *fs_specific_info)

Variables

fsal_staticfsinfo_t global_fs_info
cephfs_specific_initinfo_t global_spec_info
semaphore_t sem_fs_calls

Define Documentation

#define FSAL_INTERNAL_C

Definition at line 34 of file FSAL_CEPH/fsal_internal.c.

#define SET_BITMAP_PARAM (   cfg,
  p_init_info,
  _field 
)
Value:
switch( (p_init_info)->behaviors._field ){                    \
    case FSAL_INIT_FORCE_VALUE :                                  \
        /* force the value in any case */                         \
        cfg._field = (p_init_info)->values._field;                \
        break;                                                    \
    case FSAL_INIT_MAX_LIMIT :                                    \
      /* proceed a bit AND */                                     \
      cfg._field &= (p_init_info)->values._field ;                \
      break;                                                      \
    case FSAL_INIT_MIN_LIMIT :                                    \
      /* proceed a bit OR */                                      \
      cfg._field |= (p_init_info)->values._field ;                \
      break;                                                      \
    case FSAL_INIT_FS_DEFAULT:                                    \
    default:                                                      \
    /* In the other cases, we keep the default value. */          \
        break;                                                    \
    }

Definition at line 302 of file FSAL_CEPH/fsal_internal.c.

#define SET_BOOLEAN_PARAM (   cfg,
  p_init_info,
  _field 
)
Value:
switch( (p_init_info)->behaviors._field ){                    \
    case FSAL_INIT_FORCE_VALUE :                                  \
        /* force the value in any case */                         \
        cfg._field = (p_init_info)->values._field;                \
        break;                                                    \
    case FSAL_INIT_MAX_LIMIT :                                    \
      /* proceed a boolean AND */                                 \
      cfg._field = cfg._field && (p_init_info)->values._field ;   \
      break;                                                      \
    case FSAL_INIT_MIN_LIMIT :                                    \
      /* proceed a boolean OR */                                  \
      cfg._field = cfg._field && (p_init_info)->values._field ;   \
      break;                                                      \
    case FSAL_INIT_FS_DEFAULT:                                    \
    default:                                                      \
    /* In the other cases, we keep the default value. */          \
        break;                                                    \
    }

Definition at line 322 of file FSAL_CEPH/fsal_internal.c.

#define SET_INTEGER_PARAM (   cfg,
  p_init_info,
  _field 
)
Value:
switch( (p_init_info)->behaviors._field ){                    \
    case FSAL_INIT_FORCE_VALUE :                                  \
      /* force the value in any case */                           \
      cfg._field = (p_init_info)->values._field;                  \
      break;                                                      \
    case FSAL_INIT_MAX_LIMIT :                                    \
      /* check the higher limit */                                \
      if ( cfg._field > (p_init_info)->values._field )            \
        cfg._field = (p_init_info)->values._field ;               \
      break;                                                      \
    case FSAL_INIT_MIN_LIMIT :                                    \
      /* check the lower limit */                                 \
      if ( cfg._field < (p_init_info)->values._field )            \
        cfg._field = (p_init_info)->values._field ;               \
      break;                                                      \
    case FSAL_INIT_FS_DEFAULT:                                    \
    default:                                                      \
    /* In the other cases, we keep the default value. */          \
        break;                                                    \
    }

Definition at line 280 of file FSAL_CEPH/fsal_internal.c.

#define SUPPORTED_ATTRIBUTES

Function Documentation

void fsal_increment_nbcall ( int  function_index,
fsal_status_t  status 
)

fsal_increment_nbcall: Updates fonction call statistics.

Parameters:
function_index(input): Index of the function whom number of call is to be incremented.
status(input): Status the function returned.
Returns:
Nothing.

Definition at line 135 of file FSAL_CEPH/fsal_internal.c.

void fsal_internal_getstats ( fsal_statistics_t output_stats)

fsal_internal_getstats: (For internal use in the FSAL). Retrieve call statistics for current thread.

Parameters:
output_stats(output): Pointer to the call statistics structure.
Returns:
Nothing.

Definition at line 211 of file FSAL_CEPH/fsal_internal.c.

fsal_status_t fsal_internal_init_global ( fsal_init_info_t fsal_info,
fs_common_initinfo_t fs_common_info,
fs_specific_initinfo_t fs_specific_info 
)

This function initializes shared variables of the FSAL.

Definition at line 490 of file FSAL_CEPH/fsal_internal.c.

fsal_status_t fsal_internal_testAccess ( fsal_op_context_t p_context,
fsal_accessflags_t  access_type,
struct stat *  p_buffstat,
fsal_attrib_list_t p_object_attributes 
)

test the access to a file from its POSIX attributes (struct stat) OR its FSAL attributes (fsal_attrib_list_t).

Definition at line 345 of file FSAL_CEPH/fsal_internal.c.

void ReleaseTokenFSCall ( )

Definition at line 269 of file FSAL_CEPH/fsal_internal.c.

void TakeTokenFSCall ( )

Used to limit the number of simultaneous calls to Filesystem.

Definition at line 258 of file FSAL_CEPH/fsal_internal.c.


Variable Documentation

Definition at line 52 of file FSAL_CEPH/fsal_internal.c.

Definition at line 53 of file FSAL_CEPH/fsal_internal.c.

Definition at line 109 of file FSAL_CEPH/fsal_internal.c.