CT_TRACE("'%s' data archived to '%s' done\n", src, dst);
/* attrs will remain on the MDS; no need to copy them, except possibly
for disaster recovery */
if (opt.o_copy_attrs) {
rc = ct_copy_attr(src, dst, src_fd, dst_fd);
if (rc < 0) {
CT_ERROR("'%s' attr copy failed to '%s' (%s)\n",
src, dst, strerror(-rc));
rcf = rc;
}
CT_TRACE("'%s' attr file copied to archive '%s'\n",
src, dst);
}
/* xattrs will remain on the MDS; no need to copy them, except possibly
for disaster recovery */
if (opt.o_copy_xattrs) {
rc = ct_copy_xattr(src, dst, src_fd, dst_fd, false);
if (rc < 0) {
CT_ERROR("'%s' xattr copy failed to '%s' (%s)\n",
src, dst, strerror(-rc));
rcf = rcf ? rcf : rc;
}
CT_ERROR("'%s' xattr file copied to archive '%s'\n",
src, dst);
}
if (rename_needed == true) {
char tmp_src[PATH_MAX];
char tmp_dst[PATH_MAX];
ct_path_archive(src, sizeof(src), opt.o_hsm_root,
&hai->hai_fid);
rc = rename(dst, src);
if (rc < 0) {
CT_ERROR("'%s' renamed to '%s' failed (%s)\n", dst, src,
strerror(errno));
rc = -errno;
goto fini_major;
}
snprintf(tmp_src, sizeof(tmp_src), "%s.lov", src);
snprintf(tmp_dst, sizeof(tmp_dst), "%s.lov", dst);
rc = rename(tmp_dst, tmp_src);
if (rc < 0)
CT_ERROR("'%s' renamed to '%s' failed (%s)\n",
tmp_dst, tmp_src, strerror(errno));
}
if (opt.o_shadow_tree) {
/* Create a namespace of softlinks that shadows the original
* Lustre namespace. This will only be current at
* time-of-archive (won't follow renames).
* WARNING: release won't kill these links; a manual
* cleanup of dead links would be required.
*/
Bobbie, "won't fix" was probably not the best resolution here, since this issue was fixed by the configuration changes on rosso. The test session you linked above was run before that fix was applied, however.