From dfc88bf3727fb33e2fc273bd7f24401e0209f39e Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Mon, 20 Feb 2012 19:48:07 +0530 Subject: storage/posix: Add xattr for gfid2path Change-Id: I1fe987d255bf50e8433043749b482b67554a0ac3 BUG: 763820 Signed-off-by: Pranith Kumar K Reviewed-on: http://review.gluster.com/2774 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- libglusterfs/src/glusterfs.h | 1 + xlators/storage/posix/src/posix.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index f961fd5937e..076833d2352 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -94,6 +94,7 @@ #define GLUSTERFS_ENTRYLK_COUNT "glusterfs.entrylk-count" #define GLUSTERFS_POSIXLK_COUNT "glusterfs.posixlk-count" #define QUOTA_SIZE_KEY "trusted.glusterfs.quota.size" +#define GFID_TO_PATH_KEY "glusterfs.gfid2path" /* Index xlator related */ #define GF_XATTROP_INDEX_GFID "glusterfs.xattrop_index_gfid" diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index 5849626b03c..deaf2e772ef 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -2393,6 +2393,7 @@ posix_getxattr (call_frame_t *frame, xlator_t *this, dict_t * dict = NULL; char * file_contents = NULL; int ret = -1; + char * path = NULL; DECLARE_OLD_FS_ID_VAR; @@ -2456,6 +2457,24 @@ posix_getxattr (call_frame_t *frame, xlator_t *this, goto done; } + if (loc->inode && name && + (strcmp (name, GFID_TO_PATH_KEY) == 0)) { + ret = inode_path (loc->inode, NULL, &path); + if (ret < 0) { + gf_log (this->name, GF_LOG_WARNING, "%s: could not get " + "inode path", uuid_utoa (loc->inode->gfid)); + goto done; + } + + ret = dict_set_dynstr (dict, GFID_TO_PATH_KEY, path); + if (ret < 0) { + gf_log (this->name, GF_LOG_WARNING, + "could not set value (%s) in dictionary", + host_buf); + } + goto done; + } + if (name) { strcpy (key, name); -- cgit