nfs-ganesha 1.4

namespace.h

Go to the documentation of this file.
00001 /*
00002  * \brief Manage a namespace for path<->inode association
00003  */
00004 
00005 #ifndef _GANEFUSE_NAMESPACE_H
00006 #define _GANEFUSE_NAMESPACE_H
00007 
00008 #include "fsal.h"
00009 
00010 /* Initialize namespace root
00011  * p_root_gen in/out:
00012  *      in: give the ctime of the entry the first time
00013  *          it was seen in the filesystem.
00014  *      out: the effective generation number that was given.
00015  */
00016 int NamespaceInit(ino_t root_inode, dev_t root_dev, unsigned int *p_root_gen);
00017 
00018 /* Add a child entry
00019  * p_new_gen in/out:
00020  *      in: give the ctime of the entry the first time
00021  *          it was seen in the filesystem.
00022  *      out: the effective generation number that was given.
00023  * \return ENOENT if directoy inode is unknown
00024  * \return ESTALE if directoy gen number is not correct
00025  *         
00026  */
00027 int NamespaceAdd(ino_t parent_ino, dev_t parent_dev, unsigned int gen,
00028                  char *name, ino_t entry_ino, dev_t entry_dev, unsigned int *p_new_gen);
00029 
00030 /* Remove a child entry
00031  * \return ENOENT if directoy inode is unknown
00032  * \return ESTALE if directoy gen number is not correct
00033  */
00034 int NamespaceRemove(ino_t parent_ino, dev_t parent_dev, unsigned int gen, char *name);
00035 
00036 /* Move an entry in the namespace
00037  * \return ENOENT if directoy inode is unknown
00038  * \return ESTALE if directoy gen number is not correct
00039  */
00040 int NamespaceRename(ino_t parent_entry_src, dev_t src_dev, unsigned int srcgen,
00041                     char *name_src, ino_t parent_entry_tgt, dev_t tgt_dev,
00042                     unsigned int tgtgen, char *name_tgt);
00043 
00053 int NamespacePath(ino_t entry, dev_t dev, unsigned int gen, char *path);
00054 
00058 int NamespaceGetGen(ino_t inode, dev_t dev, unsigned int *p_gen);
00059 
00060 #endif