From owner-freebsd-commit Fri Jun 2 03:58:01 1995 Return-Path: commit-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id DAA21120 for commit-outgoing; Fri, 2 Jun 1995 03:58:01 -0700 Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id DAA21107 for cvs-sys-outgoing; Fri, 2 Jun 1995 03:57:59 -0700 Received: (from davidg@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id DAA21097 ; Fri, 2 Jun 1995 03:57:52 -0700 Date: Fri, 2 Jun 1995 03:57:52 -0700 From: David Greenman Message-Id: <199506021057.DAA21097@freefall.cdrom.com> To: CVS-commiters, cvs-sys Subject: cvs commit: src/sys/msdosfs msdosfs_vnops.c Sender: commit-owner@FreeBSD.org Precedence: bulk davidg 95/06/02 03:57:52 Modified: sys/msdosfs msdosfs_vnops.c Log: Don't "remember" where the target directory slot is. The target slot doesn't move. "Remembering" the target slot was a no-op for files, but for directories it changed the target slot to slot of the "." entry in the source directory. Thus rename("a", "b/c") (where "a" is any directory and "b/c" is an empty directory) was essentially unlink("b/c"); rename("a/.", "a"); unlink("a"); where the middle rename corrupts "a/." and the final unlink detaches "a" and everything underneath it from the directory tree although not from the file system. Submitted by: Bruce Evans