nfs-ganesha 1.4
Functions | Variables

fsal_lookup.c File Reference

#include "fsal.h"
#include "fsal_internal.h"
#include "fsal_convert.h"
#include "fsal_common.h"
#include <string.h>

Go to the source code of this file.

Functions

fsal_status_t ZFSFSAL_lookup (fsal_handle_t *parent_hdl, fsal_name_t *p_filename, fsal_op_context_t *context, fsal_handle_t *obj_handle, fsal_attrib_list_t *object_attributes)
fsal_status_t ZFSFSAL_lookupJunction (fsal_handle_t *p_junction_handle, fsal_op_context_t *p_context, fsal_handle_t *p_fsoot_handle, fsal_attrib_list_t *p_fsroot_attributes)
fsal_status_t ZFSFSAL_lookupPath (fsal_path_t *p_path, fsal_op_context_t *p_context, fsal_handle_t *object_handle, fsal_attrib_list_t *object_attributes)

Variables

size_t i_snapshots
snapshot_t * p_snapshots

Function Documentation

fsal_status_t ZFSFSAL_lookup ( fsal_handle_t *  parent_hdl,
fsal_name_t *  p_filename,
fsal_op_context_t *  context,
fsal_handle_t *  obj_handle,
fsal_attrib_list_t *  object_attributes 
)

FSAL_lookup : Looks up for an object into a directory.

Note : if parent handle and filename are NULL, this retrieves root's handle.

Parameters:
parent_directory_handle(input) Handle of the parent directory to search the object in.
filename(input) The name of the object to find.
p_context(input) Authentication context for the operation (user,...).
object_handle(output) The handle of the object corresponding to filename.
object_attributes(optional input/output) Pointer to the attributes of the object we found. 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). It can be NULL (increases performances).
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_STALE (parent_directory_handle does not address an existing object)
  • ERR_FSAL_NOTDIR (parent_directory_handle does not address a directory)
  • ERR_FSAL_NOENT (the object designated by p_filename does not exist)
  • ERR_FSAL_XDEV (tried to operate a lookup on a filesystem junction. Use FSAL_lookupJunction instead)
  • ERR_FSAL_FAULT (a NULL pointer was passed as mandatory argument)
  • Other error codes can be returned : ERR_FSAL_ACCESS, ERR_FSAL_IO, ...

Definition at line 62 of file FSAL_ZFS/fsal_lookup.c.

fsal_status_t ZFSFSAL_lookupJunction ( fsal_handle_t *  p_junction_handle,
fsal_op_context_t *  p_context,
fsal_handle_t *  p_fsoot_handle,
fsal_attrib_list_t *  p_fsroot_attributes 
)

FSAL_lookupJunction : Get the fileset root for a junction.

Parameters:
p_junction_handle(input) Handle of the junction to be looked up.
cred(input) Authentication context for the operation (user,...).
p_fsroot_handle(output) The handle of root directory of the fileset.
p_fsroot_attributes(optional input/output) Pointer to the attributes of the root directory for the fileset. 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). It can be NULL (increases performances).
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_STALE (p_junction_handle does not address an existing object)
  • ERR_FSAL_FAULT (a NULL pointer was passed as mandatory argument)
  • Other error codes can be returned : ERR_FSAL_ACCESS, ERR_FSAL_IO, ...

Definition at line 263 of file FSAL_ZFS/fsal_lookup.c.

fsal_status_t ZFSFSAL_lookupPath ( fsal_path_t *  p_path,
fsal_op_context_t *  p_context,
fsal_handle_t *  object_handle,
fsal_attrib_list_t *  object_attributes 
)

FSAL_lookupPath : Looks up for an object into the namespace.

Note : if path equals "/", this retrieves root's handle.

Parameters:
path(input) The path of the object to find.
p_context(input) Authentication context for the operation (user,...).
object_handle(output) The handle of the object corresponding to filename.
object_attributes(optional input/output) Pointer to the attributes of the object we found. 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). It can be NULL (increases performances).
Returns:
Major error codes :
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_FAULT (a NULL pointer was passed as mandatory argument)
  • ERR_FSAL_INVAL (the path argument is not absolute)
  • ERR_FSAL_NOENT (an element in the path does not exist)
  • ERR_FSAL_NOTDIR (an element in the path is not a directory)
  • ERR_FSAL_XDEV (tried to cross a filesystem junction, whereas is has not been authorized in the server configuration - FSAL::auth_xdev_export parameter)
  • Other error codes can be returned : ERR_FSAL_ACCESS, ERR_FSAL_IO, ...

Definition at line 335 of file FSAL_ZFS/fsal_lookup.c.


Variable Documentation

size_t i_snapshots

Common FS tools for internal use in the FSAL.

Definition at line 35 of file FSAL_ZFS/fsal_internal.c.

Definition at line 36 of file FSAL_ZFS/fsal_internal.c.