nfs-ganesha 1.4
|
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <fcntl.h>
#include <sys/file.h>
#include "HashData.h"
#include "HashTable.h"
#include "log.h"
#include "ganesha_rpc.h"
#include "nfs23.h"
#include "nfs4.h"
#include "mount.h"
#include "cache_inode.h"
#include "nfs_tools.h"
#include "nfs_creds.h"
#include "nfs_file_handle.h"
Go to the source code of this file.
#define NFS2_MODE_NFBLK 0060000 |
Definition at line 62 of file nfs_proto_tools.h.
#define NFS2_MODE_NFCHR 0020000 |
Definition at line 61 of file nfs_proto_tools.h.
#define NFS2_MODE_NFDIR 0040000 |
Definition at line 60 of file nfs_proto_tools.h.
#define NFS2_MODE_NFLNK 0120000 |
Definition at line 64 of file nfs_proto_tools.h.
#define NFS2_MODE_NFNON 0140000 |
Definition at line 65 of file nfs_proto_tools.h.
#define NFS2_MODE_NFREG 0100000 |
Definition at line 63 of file nfs_proto_tools.h.
void nfs3_access_debug | ( | char * | label, |
uint32_t | access | ||
) |
Definition at line 4322 of file nfs_proto_tools.c.
int nfs3_Sattr_To_FSAL_attr | ( | fsal_attrib_list_t * | pFSALattr, |
sattr3 * | psattr | ||
) |
void nfs4_access_debug | ( | char * | label, |
uint32_t | access, | ||
fsal_aceperm_t | v4mask | ||
) |
Definition at line 4334 of file nfs_proto_tools.c.
void nfs4_Fattr_Free | ( | fattr4 * | fattr | ) |
Definition at line 786 of file nfs_proto_tools.c.
nfsstat4 nfs4_sanity_check_FH | ( | compound_data_t * | data, |
cache_inode_file_type_t | required_type | ||
) |
nfs4_sanity_check_FH: Do basic checks on a filehandle
This function performs basic checks to make sure the supplied filehandle is sane for a given operation.
data | [IN] Compound_data_t for the operation to check |
required_type | [IN] The file type this operation requires. Set to 0 to allow any type. |
Definition at line 4377 of file nfs_proto_tools.c.
cache_entry_t* nfs_FhandleToCache | ( | u_long | rq_vers, |
fhandle2 * | pfh2, | ||
nfs_fh3 * | pfh3, | ||
nfs_fh4 * | pfh4, | ||
nfsstat2 * | pstatus2, | ||
nfsstat3 * | pstatus3, | ||
nfsstat4 * | pstatus4, | ||
fsal_attrib_list_t * | pattr, | ||
fsal_op_context_t * | pcontext, | ||
int * | prc | ||
) |
nfs_FhandleToCache: Gets a cache entry using a file handle (v2/3/4) as input.
Gets a cache entry using a file handle (v2/3/4) as input.
If a cache entry is returned, its refcount is +1.
rq_vers | [IN] version of the NFS protocol to be used |
pfh2 | [IN] NFSv2 file handle or NULL |
pfh3 | [IN] NFSv3 file handle or NULL |
pfh4 | [IN] NFSv4 file handle or NULL |
pstatus2 | [OUT] pointer to NFSv2 status or NULL |
pstatus3 | [OUT] pointer to NFSv3 status or NULL |
pstatus4 | [OUT] pointer to NFSv4 status or NULL |
pattr | [OUT] FSAL attributes related to this cache entry |
pcontext | [IN] client's FSAL credentials |
pclient | [IN] client's ressources to be used for accessing the Cache Inode |
prc | [OUT] internal status for the request (NFS_REQ_DROP or NFS_REQ_OK) |
Definition at line 194 of file nfs_proto_tools.c.
void nfs_FhandleToStr | ( | u_long | rq_vers, |
fhandle2 * | pfh2, | ||
nfs_fh3 * | pfh3, | ||
nfs_fh4 * | pfh4, | ||
char * | str | ||
) |
nfs_FhandleToStr: Converts a file handle to a string representation.
Converts a file handle to a string representation.
rq_vers | [IN] version of the NFS protocol to be used |
pfh2 | [IN] NFSv2 file handle or NULL |
pfh3 | [IN] NFSv3 file handle or NULL |
pfh4 | [IN] NFSv4 file handle or NULL |
str | [OUT] string version of handle |
Definition at line 148 of file nfs_proto_tools.c.
fsal_accessflags_t nfs_get_access_mask | ( | uint32_t | op, |
fsal_attrib_list_t * | pattr | ||
) |
Definition at line 4266 of file nfs_proto_tools.c.
int nfs_RetryableError | ( | cache_inode_status_t | cache_status | ) |
nfs_RetryableError: Indicates if an error is retryable or not.
Indicates if an error is retryable or not.
cache_status | [IN] input Cache Inode Status value, to be tested. |
Definition at line 408 of file nfs_proto_tools.c.
void nfs_SetFailedStatus | ( | fsal_op_context_t * | pcontext, |
exportlist_t * | pexport, | ||
int | version, | ||
cache_inode_status_t | status, | ||
nfsstat2 * | pstatus2, | ||
nfsstat3 * | pstatus3, | ||
cache_entry_t * | pentry0, | ||
post_op_attr * | ppost_op_attr, | ||
cache_entry_t * | pentry1, | ||
fsal_attrib_list_t * | ppre_vattr1, | ||
wcc_data * | pwcc_data1, | ||
cache_entry_t * | pentry2, | ||
fsal_attrib_list_t * | ppre_vattr2, | ||
wcc_data * | pwcc_data2 | ||
) |
Definition at line 510 of file nfs_proto_tools.c.
int nfs_SetPostOpAttr | ( | exportlist_t * | pexport, |
const fsal_attrib_list_t * | pfsal_attr, | ||
post_op_attr * | presult | ||
) |
nfs_SetPostOpAttr: Converts FSAL Attributes to NFSv3 PostOp Attributes structure.
Converts FSAL Attributes to NFSv3 PostOp Attributes structure.
pexport | [IN] the related export entry |
pfsal_attr | [IN] FSAL attributes |
pattr | [OUT] NFSv3 PostOp structure attributes. |
Definition at line 315 of file nfs_proto_tools.c.
int nfs_SetPostOpXAttrDir | ( | fsal_op_context_t * | pcontext, |
exportlist_t * | pexport, | ||
fsal_attrib_list_t * | pfsal_attr, | ||
post_op_attr * | presult | ||
) |
nfs_SetPostOpAttrDir: Converts FSAL Attributes to NFSv3 PostOp Attributes structure.
Converts FSAL Attributes to NFSv3 PostOp Attributes structure.
pexport | [IN] the related export entry |
pfsal_attr | [IN] FSAL attributes |
pattr | [OUT] NFSv3 PostOp structure attributes. |
Definition at line 212 of file nfs_xattr.c.
int nfs_SetPostOpXAttrFile | ( | fsal_op_context_t * | pcontext, |
exportlist_t * | pexport, | ||
fsal_attrib_list_t * | pfsal_attr, | ||
post_op_attr * | presult | ||
) |
nfs_SetPostOpAttrDir: Converts FSAL Attributes to NFSv3 PostOp Attributes structure.
Converts FSAL Attributes to NFSv3 PostOp Attributes structure.
pexport | [IN] the related export entry |
pfsal_attr | [IN] FSAL attributes for xattr |
pattr | [OUT] NFSv3 PostOp structure attributes. |
Definition at line 244 of file nfs_xattr.c.
void nfs_SetPreOpAttr | ( | fsal_attrib_list_t * | pfsal_attr, |
pre_op_attr * | pattr | ||
) |
nfs_SetPreOpAttr: Converts FSAL Attributes to NFSv3 PreOp Attributes structure.
Converts FSAL Attributes to NFSv3 PreOp Attributes structure.
pfsal_attr | [IN] FSAL attributes. |
pattr | [OUT] NFSv3 PreOp structure attributes. |
Definition at line 350 of file nfs_proto_tools.c.
void nfs_SetWccData | ( | exportlist_t * | pexport, |
fsal_attrib_list_t * | pbefore_attr, | ||
fsal_attrib_list_t * | pafter_attr, | ||
wcc_data * | pwcc_data | ||
) |
nfs_SetWccData: Sets NFSv3 Weak Cache Coherency structure.
Sets NFSv3 Weak Cache Coherency structure.
pexport | [IN] export entry |
pentry | [IN] related pentry |
pbefore_attr | [IN] the attributes before the operation. |
pafter_attr | [IN] the attributes after the operation |
pwcc_data | [OUT] the Weak Cache Coherency structure |
Definition at line 384 of file nfs_proto_tools.c.