if (r < 0)
return log_error_errno(r, "Failed to stat source file '%s/%s': %m", strempty(arg_root), path);
- r = set_ensure_put(subvolumes, &inode_hash_ops, st);
+ r = set_ensure_consume(subvolumes, &inode_hash_ops, TAKE_PTR(st));
if (r < 0)
return log_oom();
- if (r > 0)
- TAKE_PTR(st);
return 0;
}
log_debug("Inode '%s' already seen before, ignoring.", fname);
return false;
}
+
d = memdup(&st, sizeof(st));
if (!d)
return log_oom();
- if (set_ensure_put(&config->inodes_seen, &inode_hash_ops, d) < 0)
+
+ if (set_ensure_consume(&config->inodes_seen, &inode_hash_ops, TAKE_PTR(d)) < 0)
return log_oom();
- TAKE_PTR(d);
return true;
}