diff options
-rw-r--r-- | libglusterfs/src/compat-errno.c | 6 | ||||
-rw-r--r-- | xlators/features/marker/src/marker.c | 6 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-quota.c | 3 | ||||
-rw-r--r-- | xlators/mount/fuse/src/fuse-bridge.c | 2 | ||||
-rw-r--r-- | xlators/storage/posix/src/posix-handle.c | 2 | ||||
-rw-r--r-- | xlators/storage/posix/src/posix-handle.h | 2 | ||||
-rw-r--r-- | xlators/storage/posix/src/posix.c | 20 |
7 files changed, 27 insertions, 14 deletions
diff --git a/libglusterfs/src/compat-errno.c b/libglusterfs/src/compat-errno.c index fd5cc49cefa..d8ab82a5d20 100644 --- a/libglusterfs/src/compat-errno.c +++ b/libglusterfs/src/compat-errno.c @@ -859,6 +859,12 @@ init_compat_errno_arrays () gf_error_to_errno_array[GF_ERROR_CODE_BADMSG] = EBADMSG; gf_errno_to_error_array[EBADMSG] = GF_ERROR_CODE_BADMSG; +#ifdef __NetBSD__ + /* ENODATA 89 / * No message available */ + gf_error_to_errno_array[GF_ERROR_CODE_NODATA] = ENODATA; + gf_errno_to_error_array[ENODATA] = GF_ERROR_CODE_NODATA; +#endif + /* EMULTIHOP 90 / * Multihop attempted */ gf_error_to_errno_array[GF_ERROR_CODE_MULTIHOP] = EMULTIHOP; gf_errno_to_error_array[EMULTIHOP] = GF_ERROR_CODE_MULTIHOP; diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c index e9a8e544b3b..465ee8c7ce6 100644 --- a/xlators/features/marker/src/marker.c +++ b/xlators/features/marker/src/marker.c @@ -1130,7 +1130,7 @@ marker_rename_release_oldp_lock (call_frame_t *frame, void *cookie, local = frame->local; oplocal = local->oplocal; - if ((op_ret < 0) && (op_errno != ENOATTR)) { + if ((op_ret < 0) && (op_errno != ENOATTR) && (op_errno != ENODATA)) { local->err = op_errno; } @@ -1275,7 +1275,7 @@ marker_do_rename (call_frame_t *frame, void *cookie, xlator_t *this, if (cookie == (void *) _GF_UID_GID_CHANGED) MARKER_RESET_UID_GID (frame, frame->root, local); - if ((op_ret < 0) && (op_errno != ENOATTR)) { + if ((op_ret < 0) && (op_errno != ENOATTR) && (op_errno != ENODATA)) { local->err = op_errno ? op_errno : EINVAL; gf_log (this->name, GF_LOG_WARNING, "fetching contribution values from %s (gfid:%s) " @@ -1327,7 +1327,7 @@ marker_get_newpath_contribution (call_frame_t *frame, void *cookie, if (cookie == (void *) _GF_UID_GID_CHANGED) MARKER_RESET_UID_GID (frame, frame->root, local); - if ((op_ret < 0) && (op_errno != ENOATTR)) { + if ((op_ret < 0) && (op_errno != ENOATTR) && (op_errno != ENODATA)) { local->err = op_errno ? op_errno : EINVAL; gf_log (this->name, GF_LOG_WARNING, "fetching contribution values from %s (gfid:%s) " diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c index 14767f75089..f2f742ddaf2 100644 --- a/xlators/mgmt/glusterd/src/glusterd-quota.c +++ b/xlators/mgmt/glusterd/src/glusterd-quota.c @@ -449,6 +449,9 @@ glusterd_set_quota_limit (char *volname, char *path, char *hard_limit, sizeof (existing_limit)); if (ret < 0) { switch (errno) { +#if defined(ENOATTR) && (ENOATTR != ENODATA) + case ENODATA: /* FALLTHROUGH */ +#endif case ENOATTR: existing_limit.sl = -1; break; diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index a50f0c8387f..dd51f5a6608 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -3312,7 +3312,7 @@ fuse_xattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, } /* if(state->name)...else */ } else { /* if failure - no need to check if listxattr or getxattr */ - if (op_errno != ENODATA) { + if (op_errno != ENODATA && op_errno != ENOATTR) { if (op_errno == ENOTSUP) { GF_LOG_OCCASIONALLY (gf_fuse_xattr_enotsup_log, "glusterfs-fuse", diff --git a/xlators/storage/posix/src/posix-handle.c b/xlators/storage/posix/src/posix-handle.c index 48ca77d9e01..9439b295cb9 100644 --- a/xlators/storage/posix/src/posix-handle.c +++ b/xlators/storage/posix/src/posix-handle.c @@ -549,7 +549,7 @@ posix_does_old_trash_exists (char *old_trash) ret = lstat (old_trash, &stbuf); if ((ret == 0) && S_ISDIR (stbuf.st_mode)) { ret = sys_lgetxattr (old_trash, "trusted.gfid", gfid, 16); - if ((ret < 0) && (errno == ENODATA)) + if ((ret < 0) && (errno == ENODATA || errno == ENOATTR) ) exists = _gf_true; } return exists; diff --git a/xlators/storage/posix/src/posix-handle.h b/xlators/storage/posix/src/posix-handle.h index fec1447982b..a30e0296140 100644 --- a/xlators/storage/posix/src/posix-handle.h +++ b/xlators/storage/posix/src/posix-handle.h @@ -68,7 +68,7 @@ op_ret = sys_lgetxattr (path, key, &value, sizeof (value)); \ if (op_ret == -1) { \ op_errno = errno; \ - if (op_errno == ENOATTR) { \ + if (op_errno == ENOATTR || op_errno == ENODATA) { \ value = 1; \ } else { \ gf_log (this->name, GF_LOG_WARNING,"getting xattr " \ diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index e0fff819c6c..e8d6a8bd66a 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -3910,8 +3910,9 @@ posix_fgetxattr (call_frame_t *frame, xlator_t *this, size = sys_fgetxattr (_fd, key, NULL, 0); if (size <= 0) { op_errno = errno; - gf_log (this->name, ((errno == ENODATA) ? - GF_LOG_DEBUG : GF_LOG_ERROR), + gf_log (this->name, + ((errno == ENODATA || errno == ENOATTR) ? + GF_LOG_DEBUG : GF_LOG_ERROR), "fgetxattr failed on key %s (%s)", key, strerror (op_errno)); goto done; @@ -4131,7 +4132,7 @@ _posix_remove_xattr (dict_t *dict, char *key, data_t *value, void *data) op_ret = sys_lremovexattr (filler->real_path, key); if (op_ret == -1) { filler->op_errno = errno; - if (errno != ENOATTR && errno != EPERM) + if (errno != ENOATTR && errno != ENODATA && errno != EPERM) gf_log (this->name, GF_LOG_ERROR, "removexattr failed on %s (for %s): %s", filler->real_path, key, strerror (errno)); @@ -4191,7 +4192,8 @@ posix_removexattr (call_frame_t *frame, xlator_t *this, op_ret = sys_lremovexattr (real_path, name); if (op_ret == -1) { op_errno = errno; - if (op_errno != ENOATTR && op_errno != EPERM) + if (op_errno != ENOATTR && op_errno != ENODATA && + op_errno != EPERM) gf_log (this->name, GF_LOG_ERROR, "removexattr on %s (for %s): %s", real_path, name, strerror (op_errno)); @@ -4246,7 +4248,8 @@ posix_fremovexattr (call_frame_t *frame, xlator_t *this, op_ret = sys_fremovexattr (_fd, name); if (op_ret == -1) { op_errno = errno; - if (op_errno != ENOATTR && op_errno != EPERM) + if (op_errno != ENOATTR && op_errno != ENODATA && + op_errno != EPERM) gf_log (this->name, GF_LOG_ERROR, "fremovexattr (for %s): %s", name, strerror (op_errno)); @@ -5516,15 +5519,16 @@ init (xlator_t *this) ret = -1; goto out; } - } else if ((size == -1) && (errno == ENODATA)) { - + } else if ((size == -1) && + (errno == ENODATA || errno == ENOATTR)) { gf_log (this->name, GF_LOG_ERROR, "Extended attribute trusted.glusterfs." "volume-id is absent"); ret = -1; goto out; - } else if ((size == -1) && (errno != ENODATA)) { + } else if ((size == -1) && (errno != ENODATA) && + (errno != ENOATTR)) { /* Wrong 'volume-id' is set, it should be error */ gf_log (this->name, GF_LOG_WARNING, "%s: failed to fetch volume-id (%s)", |