nfs-ganesha 1.4
Functions

fsal_fileop.c File Reference

#include "fsal.h"
#include "fsal_internal.h"
#include "fsal_convert.h"

Go to the source code of this file.

Functions

fsal_status_t LUSTREFSAL_open_by_name (fsal_handle_t *dirhandle, fsal_name_t *filename, fsal_op_context_t *p_context, fsal_openflags_t openflags, fsal_file_t *file_descriptor, fsal_attrib_list_t *file_attributes)
fsal_status_t LUSTREFSAL_open (fsal_handle_t *p_filehandle, fsal_op_context_t *p_context, fsal_openflags_t openflags, fsal_file_t *file_desc, fsal_attrib_list_t *p_file_attributes)
fsal_status_t LUSTREFSAL_read (fsal_file_t *file_desc, 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)
fsal_status_t LUSTREFSAL_write (fsal_file_t *file_desc, 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)
fsal_status_t LUSTREFSAL_close (fsal_file_t *pfile_desc)
unsigned int LUSTREFSAL_GetFileno (fsal_file_t *pfile)
fsal_status_t LUSTREFSAL_commit (fsal_file_t *pfile_desc, fsal_off_t offset, fsal_size_t length)

Function Documentation

fsal_status_t LUSTREFSAL_close ( fsal_file_t pfile_desc)

FSAL_close: Free the resources allocated by the FSAL_open call.

Parameters:
file_descriptor(input): The file descriptor returned by FSAL_open.
Returns:
Major error codes:
  • ERR_FSAL_NO_ERROR: no error.
  • Another error code if an error occured during this call.

Definition at line 584 of file FSAL_LUSTRE/fsal_fileop.c.

fsal_status_t LUSTREFSAL_commit ( fsal_file_t pfile_desc,
fsal_off_t  offset,
fsal_size_t  length 
)

FSAL_commit: This function is used for processing stable writes and COMMIT requests. Calling this function makes sure the changes to a specific file are written to disk rather than kept in memory.

Parameters:
file_descriptor(input): The file descriptor returned by FSAL_open.
offset,:The starting offset for the portion of file to be synced
length,:The length for the portion of file to be synced.
Returns:
Major error codes:
  • ERR_FSAL_NO_ERROR: no error.
  • Another error code if an error occured during this call.

Definition at line 640 of file FSAL_LUSTRE/fsal_fileop.c.

unsigned int LUSTREFSAL_GetFileno ( fsal_file_t pfile)

Definition at line 616 of file FSAL_LUSTRE/fsal_fileop.c.

fsal_status_t LUSTREFSAL_open ( fsal_handle_t p_filehandle,
fsal_op_context_t p_context,
fsal_openflags_t  openflags,
fsal_file_t file_desc,
fsal_attrib_list_t p_file_attributes 
)

FSAL_open: Open a regular file for reading/writing its data content.

Parameters:
filehandle(input): Handle of the file to be read/modified.
cred(input): Authentication context for the operation (user,...).
openflags(input): Flags that indicates behavior for file opening and access. This is an inclusive OR of the following values ( such of them are not compatible) :

  • FSAL_O_RDONLY: opening file for reading only.
  • FSAL_O_RDWR: opening file for reading and writing.
  • FSAL_O_WRONLY: opening file for writting only.
  • FSAL_O_APPEND: always write at the end of the file.
  • FSAL_O_TRUNC: truncate the file to 0 on opening.
file_descriptor(output): The file descriptor to be used for FSAL_read/write operations.
file_attributes(optionnal input/output): Post operation attributes. 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).
Returns:
Major error codes:
  • ERR_FSAL_NO_ERROR: no error.
  • Another error code if an error occured during this call.

Definition at line 118 of file FSAL_LUSTRE/fsal_fileop.c.

fsal_status_t LUSTREFSAL_open_by_name ( fsal_handle_t dirhandle,
fsal_name_t filename,
fsal_op_context_t p_context,
fsal_openflags_t  openflags,
fsal_file_t file_descriptor,
fsal_attrib_list_t file_attributes 
)

FSAL_open_byname: Open a regular file for reading/writing its data content.

Parameters:
dirhandle(input): Handle of the directory that contain the file to be read/modified.
filename(input): Name of the file to be read/modified
cred(input): Authentication context for the operation (user,...).
openflags(input): Flags that indicates behavior for file opening and access. This is an inclusive OR of the following values ( such of them are not compatible) :

  • FSAL_O_RDONLY: opening file for reading only.
  • FSAL_O_RDWR: opening file for reading and writing.
  • FSAL_O_WRONLY: opening file for writting only.
  • FSAL_O_APPEND: always write at the end of the file.
  • FSAL_O_TRUNC: truncate the file to 0 on opening.
file_descriptor(output): The file descriptor to be used for FSAL_read/write operations.
file_attributes(optionnal input/output): Post operation attributes. 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).
Returns:
Major error codes:
  • ERR_FSAL_NO_ERROR (no error)
  • ERR_FSAL_ACCESS (user doesn't have the permissions for opening the file)
  • ERR_FSAL_STALE (filehandle does not address an existing object)
  • ERR_FSAL_INVAL (filehandle does not address a regular file, or open flags are conflicting)
  • ERR_FSAL_FAULT (a NULL pointer was passed as mandatory argument)
  • Other error codes can be returned : ERR_FSAL_IO, ...

Definition at line 65 of file FSAL_LUSTRE/fsal_fileop.c.

fsal_status_t LUSTREFSAL_read ( fsal_file_t file_desc,
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 
)

FSAL_read: Perform a read operation on an opened file.

Parameters:
file_descriptor(input): The file descriptor returned by FSAL_open.
seek_descriptor(optional input): Specifies the position where data is to be read. If not specified, data will be read at the current position.
buffer_size(input): Amount (in bytes) of data to be read.
buffer(output): Address where the read data is to be stored in memory.
read_amount(output): Pointer to the amount of data (in bytes) that have been read during this call.
end_of_file(output): Pointer to a boolean that indicates whether the end of file has been reached during this call.
Returns:
Major error codes:
  • ERR_FSAL_NO_ERROR: no error.
  • Another error code if an error occured during this call.

Todo:
: manage fsal_size_t to size_t convertion
Todo:
: manage ssize_t to fsal_size_t convertion

Definition at line 322 of file FSAL_LUSTRE/fsal_fileop.c.

fsal_status_t LUSTREFSAL_write ( fsal_file_t file_desc,
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 
)

FSAL_write: Perform a write operation on an opened file.

Parameters:
file_descriptor(input): The file descriptor returned by FSAL_open.
p_context(input): Authentication context for the operation (user,...).
seek_descriptor(optional input): Specifies the position where data is to be written. If not specified, data will be written at the current position.
buffer_size(input): Amount (in bytes) of data to be written.
buffer(input): Address in memory of the data to write to file.
write_amount(output): Pointer to the amount of data (in bytes) that have been written during this call.
Returns:
Major error codes:
  • ERR_FSAL_NO_ERROR: no error.
  • Another error code if an error occured during this call.

Todo:
: manage fsal_size_t to size_t convertion
Todo:
: manage ssize_t to fsal_size_t convertion

Definition at line 447 of file FSAL_LUSTRE/fsal_fileop.c.