- size_t size = info->xsize;
- int start;
- int len;
- int rc;
-
- if (noxattr)
- return 0;
-
- errno = 0;
- rc = llistxattr(info->src, info->xlist, size);
- lr_debug(DTRACE, "llistxattr(%s,%p) returned %d, errno=%d\n",
- info->src, info->xlist, rc, errno);
- if ((rc > 0 && info->xlist == NULL) || errno == ERANGE) {
- size = rc > PATH_MAX ? rc : PATH_MAX;
- info->xlist = lr_grow_buf(info->xlist, size);
- if (info->xlist == NULL)
- return -ENOMEM;
- info->xsize = size;
- rc = llistxattr(info->src, info->xlist, size);
- lr_debug(DTRACE, "llistxattr %s returned %d, errno=%d\n",
- info->src, rc, errno);
- }
- if (rc < 0)
- return rc;
-
- len = rc;
- start = 0;
- while (start < len) {
- size = info->xvsize;
- rc = lgetxattr(info->src, info->xlist + start,
- info->xvalue, size);
- if (info->xvalue == NULL || errno == ERANGE) {
- size = rc > PATH_MAX ? rc : PATH_MAX;
- info->xvalue = lr_grow_buf(info->xvalue, size);
- if (info->xvalue == NULL)
- return -ENOMEM;
- info->xvsize = size;
- rc = lgetxattr(info->src, info->xlist + start,
- info->xvalue, size);
- }
- lr_debug(DTRACE, "\t(%s,%d) rc=%p\n", info->xlist + start,
- info->xvalue, rc);
- if (rc > 0) {
- size = rc;
- rc = lsetxattr(info->dest, info->xlist + start,
- info->xvalue, size, 0);
- lr_debug(DTRACE, "\tlsetxattr(), rc=%d, errno=%d\n",
- rc, errno);
- if (rc == -1) {
- if (errno != ENOTSUP) {
- fprintf(stderr,
- "cannot replicate xattrs from '%s' to '%s': %s\n",
+ size_t size = info->xsize;
+ int start;
+ int len;
+ int rc;
+
+ if (noxattr)
+ return 0;
+
+ errno = 0;
+ rc = llistxattr(info->src, info->xlist, size);
+ lr_debug(DTRACE, "llistxattr(%s,%p) returned %d, errno=%d\n",
+ info->src, info->xlist, rc, errno);
+ if ((rc > 0 && info->xlist == NULL) || errno == ERANGE) {
+ size = rc > PATH_MAX ? rc : PATH_MAX;
+ info->xlist = lr_grow_buf(info->xlist, size);
+ if (!info->xlist)
+ return -ENOMEM;
+ info->xsize = size;
+ rc = llistxattr(info->src, info->xlist, size);
+ lr_debug(DTRACE, "llistxattr %s returned %d, errno=%d\n",
+ info->src, rc, errno);
+ }
+ if (rc < 0)
+ return rc;
+
+ len = rc;
+ start = 0;
+ while (start < len) {
+ size = info->xvsize;
+ rc = lgetxattr(info->src, info->xlist + start,
+ info->xvalue, size);
+ if (!info->xvalue || errno == ERANGE) {
+ size = rc > PATH_MAX ? rc : PATH_MAX;
+ info->xvalue = lr_grow_buf(info->xvalue, size);
+ if (!info->xvalue)
+ return -ENOMEM;
+ info->xvsize = size;
+ rc = lgetxattr(info->src, info->xlist + start,
+ info->xvalue, size);
+ }
+ lr_debug(DTRACE, "\t(%s,%d) rc=%p\n", info->xlist + start,
+ info->xvalue, rc);
+ if (rc > 0) {
+ size = rc;
+ rc = lsetxattr(info->dest, info->xlist + start,
+ info->xvalue, size, 0);
+ lr_debug(DTRACE, "\tlsetxattr(), rc=%d, errno=%d\n",
+ rc, errno);
+ if (rc == -1) {
+ if (errno != ENOTSUP) {
+ fprintf(stderr, "cannot replicate xattrs from '%s' to '%s': %s\n",