nfs-ganesha 1.4
Classes | Typedefs | Functions | Variables

namespace.c File Reference

#include "namespace.h"
#include "RW_Lock.h"
#include "HashTable.h"
#include <string.h>
#include <pthread.h>
#include <errno.h>
#include <assert.h>

Go to the source code of this file.

Classes

struct  __inode__
struct  __lookup_peer__
struct  __fsnode__

Typedefs

typedef struct __inode__ inode_t
typedef struct __lookup_peer__ lookup_peer_t
typedef struct __fsnode__ fsnode_t

Functions

lookup_peer_th_insert_new_lookup (ino_t parent_inode, dev_t parent_dev, unsigned int parent_gen, char *name, fsnode_t *p_entry, int overwrite)
fsnode_th_get_lookup (ino_t parent_inode, dev_t parent_dev, char *name, int *p_rc)
fsnode_th_del_lookup (ino_t parent_inode, dev_t parent_dev, unsigned int parent_gen, char *name, int *p_rc)
fsnode_th_insert_new_node (ino_t inode, dev_t device, unsigned int gen, int overwrite)
fsnode_th_get_node (ino_t inode, dev_t device, int *p_rc)
int h_del_node (ino_t inode, dev_t device)
int NamespaceInit (ino_t root_inode, dev_t root_dev, unsigned int *p_root_gen)
int NamespaceAdd (ino_t parent_ino, dev_t parent_dev, unsigned int gen, char *name, ino_t entry_ino, dev_t entry_dev, unsigned int *p_new_gen)
int NamespaceRemove (ino_t parent_ino, dev_t parent_dev, unsigned int gen, char *name)
int NamespaceRename (ino_t parent_entry_src, dev_t src_dev, unsigned int srcgen, char *name_src, ino_t parent_entry_tgt, dev_t tgt_dev, unsigned int tgtgen, char *name_tgt)
int NamespaceGetGen (ino_t inode, dev_t dev, unsigned int *p_gen)
int NamespacePath (ino_t entry, dev_t dev, unsigned int gen, char *path)

Variables

pool_t node_pool
pool_t peer_pool

Typedef Documentation

typedef struct __fsnode__ fsnode_t
typedef struct __inode__ inode_t

Function Documentation

fsnode_t* h_del_lookup ( ino_t  parent_inode,
dev_t  parent_dev,
unsigned int  parent_gen,
char *  name,
int *  p_rc 
)

Definition at line 393 of file namespace.c.

int h_del_node ( ino_t  inode,
dev_t  device 
)

Definition at line 549 of file namespace.c.

fsnode_t* h_get_lookup ( ino_t  parent_inode,
dev_t  parent_dev,
char *  name,
int *  p_rc 
)

Definition at line 365 of file namespace.c.

fsnode_t* h_get_node ( ino_t  inode,
dev_t  device,
int *  p_rc 
)

Definition at line 521 of file namespace.c.

lookup_peer_t* h_insert_new_lookup ( ino_t  parent_inode,
dev_t  parent_dev,
unsigned int  parent_gen,
char *  name,
fsnode_t p_entry,
int  overwrite 
)

Definition at line 317 of file namespace.c.

fsnode_t* h_insert_new_node ( ino_t  inode,
dev_t  device,
unsigned int  gen,
int  overwrite 
)

Definition at line 475 of file namespace.c.

int NamespaceAdd ( ino_t  parent_ino,
dev_t  parent_dev,
unsigned int  gen,
char *  name,
ino_t  entry_ino,
dev_t  entry_dev,
unsigned int *  p_new_gen 
)

Definition at line 796 of file namespace.c.

int NamespaceGetGen ( ino_t  inode,
dev_t  dev,
unsigned int *  p_gen 
)

retrieves the current generation number for a inode

Definition at line 891 of file namespace.c.

int NamespaceInit ( ino_t  root_inode,
dev_t  root_dev,
unsigned int *  p_root_gen 
)

Definition at line 572 of file namespace.c.

int NamespacePath ( ino_t  entry,
dev_t  dev,
unsigned int  gen,
char *  path 
)

Get a possible full path for an entry.

Parameters:
entryThe inode for the entry to be "reverse lookuped"
paththis buffer must be at least of size FSAL_MAX_PATH_LEN
Returns:
ENOENT if inode is unknown
ESTALE if gen number is not correct

Definition at line 912 of file namespace.c.

int NamespaceRemove ( ino_t  parent_ino,
dev_t  parent_dev,
unsigned int  gen,
char *  name 
)

Definition at line 811 of file namespace.c.

int NamespaceRename ( ino_t  parent_entry_src,
dev_t  src_dev,
unsigned int  srcgen,
char *  name_src,
ino_t  parent_entry_tgt,
dev_t  tgt_dev,
unsigned int  tgtgen,
char *  name_tgt 
)

Definition at line 824 of file namespace.c.


Variable Documentation

Definition at line 71 of file namespace.c.

Definition at line 98 of file namespace.c.