nfs-ganesha 1.4
Functions

fsal_fileop.c File Reference

#include "fsal.h"
#include "fsal_internal.h"
#include "fsal_convert.h"
#include <stdio.h>

Go to the source code of this file.

Functions

fsal_status_t CEPHFSAL_open (fsal_handle_t *exthandle, fsal_op_context_t *extcontext, fsal_openflags_t openflags, fsal_file_t *extdescriptor, fsal_attrib_list_t *file_attributes)
fsal_status_t CEPHFSAL_open_by_name (fsal_handle_t *exthandle, fsal_name_t *filename, fsal_op_context_t *extcontext, fsal_openflags_t openflags, fsal_file_t *extdescriptor, fsal_attrib_list_t *file_attributes)
fsal_status_t CEPHFSAL_read (fsal_file_t *extdescriptor, fsal_seek_t *seek_descriptor, fsal_size_t buffer_size, caddr_t buffer, fsal_size_t *read_amount, fsal_boolean_t *end_of_file)
fsal_status_t CEPHFSAL_write (fsal_file_t *extdescriptor, fsal_op_context_t *p_context, fsal_seek_t *seek_descriptor, fsal_size_t buffer_size, caddr_t buffer, fsal_size_t *write_amount)
fsal_status_t CEPHFSAL_close (fsal_file_t *extdescriptor)
unsigned int CEPHFSAL_GetFileno (fsal_file_t *pfile)
fsal_status_t CEPHFSAL_commit (fsal_file_t *extdescriptor, fsal_off_t offset, fsal_size_t length)

Function Documentation

fsal_status_t CEPHFSAL_close ( fsal_file_t extdescriptor)

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)
  • ERR_FSAL_FAULT (a NULL pointer was passed as mandatory argument)
  • Other error codes can be returned : ERR_FSAL_IO, ...

Definition at line 365 of file FSAL_CEPH/fsal_fileop.c.

fsal_status_t CEPHFSAL_commit ( fsal_file_t extdescriptor,
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 419 of file FSAL_CEPH/fsal_fileop.c.

unsigned int CEPHFSAL_GetFileno ( fsal_file_t pfile)

Definition at line 396 of file FSAL_CEPH/fsal_fileop.c.

fsal_status_t CEPHFSAL_open ( fsal_handle_t exthandle,
fsal_op_context_t extcontext,
fsal_openflags_t  openflags,
fsal_file_t extdescriptor,
fsal_attrib_list_t 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)
  • 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 77 of file FSAL_CEPH/fsal_fileop.c.

fsal_status_t CEPHFSAL_open_by_name ( fsal_handle_t exthandle,
fsal_name_t filename,
fsal_op_context_t extcontext,
fsal_openflags_t  openflags,
fsal_file_t extdescriptor,
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 172 of file FSAL_CEPH/fsal_fileop.c.

fsal_status_t CEPHFSAL_read ( fsal_file_t extdescriptor,
fsal_seek_t seek_descriptor,
fsal_size_t  buffer_size,
caddr_t  buffer,
fsal_size_t read_amount,
fsal_boolean_t 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)
  • ERR_FSAL_INVAL (invalid parameter)
  • ERR_FSAL_NOT_OPENED (tried to read in a non-opened fsal_file_t)
  • ERR_FSAL_FAULT (a NULL pointer was passed as mandatory argument)
  • Other error codes can be returned : ERR_FSAL_IO, ...

Definition at line 223 of file FSAL_CEPH/fsal_fileop.c.

fsal_status_t CEPHFSAL_write ( fsal_file_t extdescriptor,
fsal_op_context_t p_context,
fsal_seek_t seek_descriptor,
fsal_size_t  buffer_size,
caddr_t  buffer,
fsal_size_t 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)
  • ERR_FSAL_INVAL (invalid parameter)
  • ERR_FSAL_NOT_OPENED (tried to write in a non-opened fsal_file_t)
  • ERR_FSAL_FAULT (a NULL pointer was passed as mandatory argument)
  • Other error codes can be returned : ERR_FSAL_IO, ERR_FSAL_NOSPC, ERR_FSAL_DQUOT...

Definition at line 303 of file FSAL_CEPH/fsal_fileop.c.