- int save_errno = errno ? errno : EINVAL; /* 0 paranoia */
- if (create_bak_dir && errno == ENOENT && make_bak_dir(dest) == 0) {
- if ((ofd = do_open(dest, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, mode)) < 0)
- save_errno = errno ? errno : save_errno;
- else
- save_errno = 0;
- }
- if (save_errno) {
- rsyserr(FERROR_XFER, save_errno, "open %s", full_fname(dest));
- close(ifd);
- errno = save_errno;
- return -1;
- }
+ int save_errno = errno;
+ rsyserr(FERROR_XFER, save_errno, "open %s", full_fname(dest));
+ close(ifd);
+ errno = save_errno;
+ return -1;