On Sun, 16 Dec 2007 14:14:31 +0000 (UTC) Diomidis Spinellis <[EMAIL PROTECTED]> 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
signature.asc
Description: PGP signature
