mv: Set file flags after setting file times

Some file flags prevent modification of file times, so they should be
set later.  This matches NetBSD's behaviour.

Reviewed by:	markj
MFC after:	1 week
Pull Request:	https://github.com/freebsd/freebsd-src/pull/1138
This commit is contained in:
Ricardo Branco 2024-03-16 18:13:10 +01:00 committed by Mark Johnston
parent 219d8fb036
commit 428f86fd2f

View File

@ -319,6 +319,12 @@ err: if (unlink(to))
*/
preserve_fd_acls(from_fd, to_fd, from, to);
(void)close(from_fd);
ts[0] = sbp->st_atim;
ts[1] = sbp->st_mtim;
if (futimens(to_fd, ts))
warn("%s: set times", to);
/*
* XXX
* NFS doesn't support chflags; ignore errors unless there's reason
@ -339,11 +345,6 @@ err: if (unlink(to))
} else
warn("%s: cannot stat", to);
ts[0] = sbp->st_atim;
ts[1] = sbp->st_mtim;
if (futimens(to_fd, ts))
warn("%s: set times", to);
if (close(to_fd)) {
warn("%s", to);
return (1);