int failed;
while (keep_trying) {
- if (keep_path_extfs)
- failed = copy_file (src, dst, 0755);
- else
+ if (keep_path_extfs) {
+ failed = copy_file(src, dst, 0755);
+ if (!failed) {
+ do_unlink(src);
+ }
+ } else {
failed = robust_rename (src, dst);
+ }
if (failed) {
if (verbose > 2)
if (do_stat (fname, &st)) return 1;
#endif
- file = make_file (0, fname);
+ file = make_file(-1, fname, NULL, 1);
+
+ /* the file could have disappeared */
+ if (!file) return 1;
/* make a complete pathname for backup file */
if (strlen(backup_dir) + strlen(fname) > (MAXPATHLEN - 1)) {