cluster/dht: Ignore ENODATA from getxattr for posix acls

dht_migrate_file no longer prints an error if getxattr for
posix acls fails with ENODATA/ENOATTR.

Change-Id: Id9ecf6852cb5294c1c154b28d609889ea3420e1c
BUG: 1546954
Signed-off-by: N Balachandran <nbalacha@redhat.com>
This commit is contained in:
N Balachandran 2018-02-20 20:08:11 +05:30 committed by Raghavendra G
parent e4ca0b3df3
commit 475286ec7f

View File

@ -2148,12 +2148,14 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,
ret = syncop_getxattr (from, loc, &xattr, POSIX_ACL_ACCESS_XATTR,
NULL, NULL);
if (ret < 0) {
gf_msg (this->name, GF_LOG_WARNING, -ret,
DHT_MSG_MIGRATE_FILE_FAILED,
"Migrate file failed:"
"%s: failed to get xattr from %s",
loc->path, from->name);
*fop_errno = -ret;
if ((-ret != ENODATA) && (-ret != ENOATTR)) {
gf_msg (this->name, GF_LOG_WARNING, -ret,
DHT_MSG_MIGRATE_FILE_FAILED,
"Migrate file failed:"
"%s: failed to get xattr from %s",
loc->path, from->name);
*fop_errno = -ret;
}
} else {
ret = syncop_setxattr (to, loc, xattr, 0, NULL, NULL);
if (ret < 0) {