- if (robust_rename(src, dst, 0755) != 0 || errno != ENOENT
- || make_bak_dir(dst) < 0 || robust_rename(src, dst, 0755) != 0)
+ if (robust_rename(src, dst, 0755) != 0 && (errno != ENOENT
+ || make_bak_dir(dst) < 0 || robust_rename(src, dst, 0755) != 0))