-+ if (list_len < 0) {
-+ if (errno == ENOTSUP)
-+ return 0;
-+ if (errno == ERANGE) {
-+ list_len = sys_llistxattr(fname, NULL, 0);
-+ if (list_len < 0) {
-+ rsyserr(FERROR, errno,
-+ "get_xattr_names: llistxattr(\"%s\",0) failed",
-+ fname);
-+ return -1;
-+ }
-+ if (namebuf_len)
-+ free(namebuf);
-+ namebuf_len = list_len + 1024;
-+ namebuf = new_array(char, namebuf_len);
-+ if (!namebuf)
-+ out_of_memory("get_xattr_names");
-+ list_len = sys_llistxattr(fname, namebuf, namebuf_len);
-+ if (list_len < 0) {
-+ rsyserr(FERROR, errno,
-+ "get_xattr_names: llistxattr(\"%s\",%ld) failed",
-+ fname, (long)namebuf_len);
-+ return -1;
-+ }
-+ } else {
++ if (list_len >= 0)
++ return list_len;
++ if (errno == ENOTSUP)
++ return 0;
++ if (errno == ERANGE) {
++ list_len = sys_llistxattr(fname, NULL, 0);
++ if (list_len < 0) {