summaryrefslogtreecommitdiffstats
path: root/xlators/storage/posix
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/storage/posix')
-rw-r--r--xlators/storage/posix/src/posix.c45
1 files changed, 32 insertions, 13 deletions
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
index eb1387a72..489cb8d0a 100644
--- a/xlators/storage/posix/src/posix.c
+++ b/xlators/storage/posix/src/posix.c
@@ -3677,7 +3677,6 @@ do_xattrop (call_frame_t *frame, xlator_t *this,
path = strdup (loc->path);
inode = loc->inode;
} else {
- inode_path (fd->inode, NULL, &path);
inode = fd->inode;
}
@@ -3704,10 +3703,16 @@ do_xattrop (call_frame_t *frame, xlator_t *this,
"Extended attributes not "
"supported by filesystem");
} else {
- gf_log (this->name, GF_LOG_ERROR,
- "getxattr failed on %s while doing "
- "xattrop: %s", path,
- strerror (op_errno));
+ if (loc)
+ gf_log (this->name, GF_LOG_ERROR,
+ "getxattr failed on %s while doing "
+ "xattrop: %s", path,
+ strerror (op_errno));
+ else
+ gf_log (this->name, GF_LOG_ERROR,
+ "fgetxattr failed on fd=%d while doing "
+ "xattrop: %s", _fd,
+ strerror (op_errno));
}
op_ret = -1;
@@ -3747,10 +3752,17 @@ do_xattrop (call_frame_t *frame, xlator_t *this,
op_errno = errno;
if (size == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "setxattr failed on %s while doing xattrop: "
- "key=%s (%s)", path,
- trav->key, strerror (op_errno));
+ if (loc)
+ gf_log (this->name, GF_LOG_ERROR,
+ "setxattr failed on %s while doing xattrop: "
+ "key=%s (%s)", path,
+ trav->key, strerror (op_errno));
+ else
+ gf_log (this->name, GF_LOG_ERROR,
+ "fsetxattr failed on fd=%d while doing xattrop: "
+ "key=%s (%s)", _fd,
+ trav->key, strerror (op_errno));
+
op_ret = -1;
goto out;
} else {
@@ -3758,10 +3770,17 @@ do_xattrop (call_frame_t *frame, xlator_t *this,
trav->value->len);
if (size != 0) {
- gf_log (this->name, GF_LOG_DEBUG,
- "dict_set_bin failed (path=%s): "
- "key=%s (%s)", path,
- trav->key, strerror (-size));
+ if (loc)
+ gf_log (this->name, GF_LOG_DEBUG,
+ "dict_set_bin failed (path=%s): "
+ "key=%s (%s)", path,
+ trav->key, strerror (-size));
+ else
+ gf_log (this->name, GF_LOG_DEBUG,
+ "dict_set_bin failed (fd=%d): "
+ "key=%s (%s)", _fd,
+ trav->key, strerror (-size));
+
op_ret = -1;
op_errno = EINVAL;
goto out;