Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Jun 2014 00:23:23 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Xin LI <delphij@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r267977 - head/bin/mv
Message-ID:  <20140627222323.GA43131@stack.nl>
In-Reply-To: <201406271957.s5RJvs6j074326@svn.freebsd.org>
References:  <201406271957.s5RJvs6j074326@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jun 27, 2014 at 07:57:54PM +0000, Xin LI wrote:
> Author: delphij
> Date: Fri Jun 27 19:57:54 2014
> New Revision: 267977
> URL: http://svnweb.freebsd.org/changeset/base/267977

> Log:
>   Always set UF_ARCHIVE on target (because they are by definition new files
>   and should be archived) and ignore error when we can't set it (e.g. NFS).

>   Reviewed by:	ken
>   MFC after:	2 weeks

> Modified:
>   head/bin/mv/mv.c

> Modified: head/bin/mv/mv.c
> ==============================================================================
> --- head/bin/mv/mv.c	Fri Jun 27 19:50:30 2014	(r267976)
> +++ head/bin/mv/mv.c	Fri Jun 27 19:57:54 2014	(r267977)
> @@ -337,8 +337,8 @@ err:		if (unlink(to))
>  	 * on a file that we copied, i.e., that we didn't create.)
>  	 */
>  	errno = 0;
> -	if (fchflags(to_fd, sbp->st_flags))
> -		if (errno != EOPNOTSUPP || sbp->st_flags != 0)
> +	if (fchflags(to_fd, sbp->st_flags | UF_ARCHIVE))
> +		if (errno != EOPNOTSUPP || ((sbp->st_flags & ~UF_ARCHIVE) != 0))
>  			warn("%s: set flags (was: 0%07o)", to, sbp->st_flags);
>  
>  	tval[0].tv_sec = sbp->st_atime;

The part ignoring failures to set UF_ARCHIVE is OK. However, it seems
inconsistent to set UF_ARCHIVE on a cross-filesystem mv of a single
file, but not on a cross-filesystem mv of a directory tree or a file
newly created via shell output redirection.

If UF_ARCHIVE is supposed to be set automatically, I think this should
be done in the kernel, like msdosfs already does. However, I'm not sure
this is actually a useful feature: backup programs are smarter than an
archive attribute these days.

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140627222323.GA43131>