cvs commit: src/bin/mv mv.c

Alexander Kabaev kabaev at gmail.com
Sun Dec 16 08:35:52 PST 2007


On Sun, 16 Dec 2007 14:14:31 +0000 (UTC)
Diomidis Spinellis <dds at FreeBSD.org> wrote:

> dds         2007-12-16 14:14:31 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     bin/mv               mv.c 
>   Log:
>   When moving a directory across devices to a place where a directory
>   with the same name exists, delete that directory first, before
> performing the copy.  This ensures that mv(1) across devices follows
> the semantics of rename(2), as required by POSIX.
>   
>   This change could introduce the potential of data loss, even if the
>   copy fails, violating the atomicity properties of rename(2).  This
> is (mostly) mitigated by first renaming the destination and
> obliterating it only after a succesfull copy.
>   
>   The above logic also led to the introduction of code that will
> cleanup the results of a partial copy, if a cross-device copy fails.
>   
>   PR:             bin/118367
>   MFC after:      1 month
>   
>   Revision  Changes    Path
>   1.47      +83 -23    src/bin/mv/mv.c
> 
> http://cvsweb.FreeBSD.org/src/bin/mv/mv.c.diff?r1=1.46&r2=1.47

This breaks make buildworld on amd64 at least:


/usr/src/bin/mv/mv.c: In function 'copy': /usr/src/bin/mv/mv.c:361:
warning: variable 'rval' might be clobbered by 'longjmp' or 'vfork'
/usr/src/bin/mv/mv.c:361: warning:variable 'i' might be clobbered by
'longjmp' or 'vfork'

-- 
Alexander Kabaev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20071216/68b10487/signature.pgp


More information about the cvs-src mailing list