diff options
Diffstat (limited to 'libglusterfs/src')
-rw-r--r-- | libglusterfs/src/inode.c | 31 | ||||
-rw-r--r-- | libglusterfs/src/inode.h | 6 |
2 files changed, 37 insertions, 0 deletions
diff --git a/libglusterfs/src/inode.c b/libglusterfs/src/inode.c index f3dd48653df..f660effcc7c 100644 --- a/libglusterfs/src/inode.c +++ b/libglusterfs/src/inode.c @@ -1816,6 +1816,37 @@ out: return inode; } +void +inode_set_need_lookup (inode_t *inode, xlator_t *this) +{ + uint64_t need_lookup = 1; + + if (!inode | !this) + return; + + inode_ctx_set (inode, this, &need_lookup); + + return; +} + +gf_boolean_t +inode_needs_lookup (inode_t *inode, xlator_t *this) +{ + uint64_t need_lookup = 0; + gf_boolean_t ret = _gf_false; + + if (!inode || !this) + return ret; + + inode_ctx_get (inode, this, &need_lookup); + if (need_lookup) { + ret = _gf_true; + need_lookup = 0; + inode_ctx_set (inode, this, &need_lookup); + } + + return ret; +} int __inode_ctx_set2 (inode_t *inode, xlator_t *xlator, uint64_t *value1_p, diff --git a/libglusterfs/src/inode.h b/libglusterfs/src/inode.h index 3a7aa063920..633e771fc3d 100644 --- a/libglusterfs/src/inode.h +++ b/libglusterfs/src/inode.h @@ -267,4 +267,10 @@ inode_ctx_merge (fd_t *fd, inode_t *inode, inode_t *linked_inode); int inode_is_linked (inode_t *inode); +void +inode_set_need_lookup (inode_t *inode, xlator_t *this); + +gf_boolean_t +inode_needs_lookup (inode_t *inode, xlator_t *this); + #endif /* _INODE_H */ |