summaryrefslogtreecommitdiffstats
path: root/xlators/storage/posix/src/posix-helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/storage/posix/src/posix-helpers.c')
-rw-r--r--xlators/storage/posix/src/posix-helpers.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c
index 0e187e020..3a66ecfc2 100644
--- a/xlators/storage/posix/src/posix-helpers.c
+++ b/xlators/storage/posix/src/posix-helpers.c
@@ -781,7 +781,10 @@ posix_handle_pair (xlator_t *this, const char *real_path,
int sys_ret = -1;
int ret = 0;
- if (ZR_FILE_CONTENT_REQUEST(key)) {
+ if (XATTR_IS_PATHINFO (key)) {
+ ret = -EACCES;
+ goto out;
+ } else if (ZR_FILE_CONTENT_REQUEST(key)) {
ret = posix_set_file_contents (this, real_path, key, value,
flags);
} else {
@@ -789,6 +792,7 @@ posix_handle_pair (xlator_t *this, const char *real_path,
value->len, flags);
if (sys_ret < 0) {
+ ret = -errno;
if (errno == ENOTSUP) {
GF_LOG_OCCASIONALLY(gf_xattr_enotsup_log,
this->name,GF_LOG_WARNING,
@@ -820,7 +824,6 @@ posix_handle_pair (xlator_t *this, const char *real_path,
#endif /* DARWIN */
}
- ret = -errno;
goto out;
}
}
@@ -835,10 +838,16 @@ posix_fhandle_pair (xlator_t *this, int fd,
int sys_ret = -1;
int ret = 0;
+ if (XATTR_IS_PATHINFO (key)) {
+ ret = -EACCES;
+ goto out;
+ }
+
sys_ret = sys_fsetxattr (fd, key, value->data,
value->len, flags);
if (sys_ret < 0) {
+ ret = -errno;
if (errno == ENOTSUP) {
GF_LOG_OCCASIONALLY(gf_xattr_enotsup_log,
this->name,GF_LOG_WARNING,
@@ -865,7 +874,6 @@ posix_fhandle_pair (xlator_t *this, int fd,
#endif /* DARWIN */
}
- ret = -errno;
goto out;
}