diff options
Diffstat (limited to 'xlators/storage/bd_map/src/bd_map_help.h')
-rw-r--r-- | xlators/storage/bd_map/src/bd_map_help.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/xlators/storage/bd_map/src/bd_map_help.h b/xlators/storage/bd_map/src/bd_map_help.h new file mode 100644 index 00000000..997b8b71 --- /dev/null +++ b/xlators/storage/bd_map/src/bd_map_help.h @@ -0,0 +1,63 @@ +/* + BD translator - Exports Block devices on server side as regular + files to client. + + Copyright IBM, Corp. 2012 + + This file is part of GlusterFS. + + Author: + M. Mohan Kumar <mohan@in.ibm.com> + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ +#ifndef _BD_MAP_HELP_H +#define _BD_MAP_HELP_H + +#define BD_RD_LOCK(lock) \ + pthread_rwlock_rdlock (lock); + +#define BD_WR_LOCK(lock) \ + pthread_rwlock_wrlock (lock); + +#define BD_UNLOCK(lock) \ + pthread_rwlock_unlock (lock); + +#define BD_WR_ENTRY(priv, bdentry, path) \ + do { \ + BD_WR_LOCK (&priv->lock); \ + bdentry = bd_entry_get (path); \ + BD_UNLOCK (&priv->lock); \ + } while (0) + +#define BD_ENTRY(priv, bdentry, path) \ + do { \ + BD_RD_LOCK (&priv->lock); \ + bdentry = bd_entry_get (path); \ + BD_UNLOCK (&priv->lock); \ + } while (0) + +#define BD_PUT_ENTRY(priv, bdentry) \ + do { \ + BD_RD_LOCK (&priv->lock); \ + bd_entry_put (bdentry); \ + BD_UNLOCK (&priv->lock); \ + } while (0) + +extern bd_entry_t *bd_rootp; +extern gf_lock_t inode_lk; + +void bd_entry_istat (const char *path, struct iatt *attr, int type); +bd_entry_t *bd_entry_add_root (void); +bd_entry_t *bd_entry_add (bd_entry_t *parent, const char *name, + struct iatt *iattr, ia_type_t type); +bd_entry_t *bd_entry_get_list (const char *name, bd_entry_t *parent); +bd_entry_t *bd_entry_get (const char *name); +void bd_entry_put (bd_entry_t *entry); +int bd_build_lv_list (bd_priv_t *priv, char *vg); +int bd_entry_cleanup (void); + +#endif |