error = getxattr(path, name, value, size);
#elif defined(DARWIN)
error = getxattr(path, name, value, size, 0 /* position */, 0);
+ /* ENOATTR and ENODATA have different values */
+ if (error < 0 && errno == ENOATTR)
+ errno = ENODATA;
#endif
return (error);
error = fgetxattr(fd, name, value, size);
#elif defined(DARWIN)
error = fgetxattr(fd, name, value, size, 0, 0 /* no options */);
+ /* ENOATTR and ENODATA have different values */
+ if (error < 0 && errno == ENOATTR)
+ errno = ENODATA;
#endif
return (error);
error = removexattr(path, name);
#elif defined(DARWIN)
error = removexattr(path, name, 0);
+ /* ENOATTR and ENODATA have different values */
+ if (error < 0 && errno == ENOATTR)
+ errno = ENODATA;
#endif
return (error);
error = fremovexattr(fd, name);
#elif defined(DARWIN)
error = fremovexattr(fd, name, 0);
+ /* ENOATTR and ENODATA have different values */
+ if (error < 0 && errno == ENOATTR)
+ errno = ENODATA;
#endif
return (error);
get_raw_xattr_name(name, i, raw_name, sizeof(raw_name));
r = sys_getxattr(fn, raw_name, (char *)val + pos, chunk_size);
- if (i && r == -ENOATTR) {
+ if (i && r == -ENODATA) {
ret = pos;
break;
}
get_raw_xattr_name(name, i, raw_name, sizeof(raw_name));
r = sys_fgetxattr(fd, raw_name, (char *)val + pos, chunk_size);
- if (i && r == -ENOATTR) {
+ if (i && r == -ENODATA) {
ret = pos;
break;
}
do {
get_raw_xattr_name(name, i, raw_name, sizeof(raw_name));
r = sys_removexattr(fn, raw_name);
- if (r < 0 && r != -ENOATTR)
+ if (r < 0 && r != -ENODATA)
ret = r;
i++;
- } while (r != -ENOATTR);
+ } while (r != -ENODATA);
}
return ret;
do {
get_raw_xattr_name(name, i, raw_name, sizeof(raw_name));
r = sys_fremovexattr(fd, raw_name);
- if (r < 0 && r != -ENOATTR)
+ if (r < 0 && r != -ENODATA)
ret = r;
i++;
- } while (r != -ENOATTR);
+ } while (r != -ENODATA);
}
return ret;