nfs-ganesha 1.4
|
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