cvs commit: src/bin/mv mv.c

Diomidis Spinellis dds at FreeBSD.org
Sun Dec 16 06:14:31 PST 2007


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


More information about the cvs-all mailing list