Module Name:    src
Committed By:   riastradh
Date:           Mon Jun  4 20:13:47 UTC 2012

Modified Files:
        src/sys/ufs/ext2fs: ext2fs_rename.c
        src/sys/ufs/ufs: inode.h ufs_rename.c ufs_vnops.c
        src/usr.sbin/pstat: pstat.c

Log Message:
Kill the IN_RENAME in-core inode flag in ufs and ext2fs.

Now that rename works we need not to wave this sort of voodoo at it.

ok dholland


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/ufs/ext2fs/ext2fs_rename.c
cvs rdiff -u -r1.60 -r1.61 src/sys/ufs/ufs/inode.h
cvs rdiff -u -r1.4 -r1.5 src/sys/ufs/ufs/ufs_rename.c
cvs rdiff -u -r1.209 -r1.210 src/sys/ufs/ufs/ufs_vnops.c
cvs rdiff -u -r1.118 -r1.119 src/usr.sbin/pstat/pstat.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/ufs/ext2fs/ext2fs_rename.c
diff -u src/sys/ufs/ext2fs/ext2fs_rename.c:1.3 src/sys/ufs/ext2fs/ext2fs_rename.c:1.4
--- src/sys/ufs/ext2fs/ext2fs_rename.c:1.3	Mon Jun  4 19:45:59 2012
+++ src/sys/ufs/ext2fs/ext2fs_rename.c	Mon Jun  4 20:13:47 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ext2fs_rename.c,v 1.3 2012/06/04 19:45:59 riastradh Exp $	*/
+/*	$NetBSD: ext2fs_rename.c,v 1.4 2012/06/04 20:13:47 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_rename.c,v 1.3 2012/06/04 19:45:59 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_rename.c,v 1.4 2012/06/04 20:13:47 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -309,24 +309,11 @@ ext2fs_gro_rename(struct mount *mp, kaut
 	if ((nlink_t)VTOI(fvp)->i_e2fs_nlink >= LINK_MAX)
 		return EMLINK;
 
-	/*
-	 * XXX There is a pile of logic here to handle a voodoo flag
-	 * IN_RENAME.  I think this is a vestige of days when the file
-	 * system hackers didn't understand concurrency or race
-	 * conditions; I believe it serves no useful function
-	 * whatsoever.
-	 */
-
 	directory_p = (fvp->v_type == VDIR);
 	KASSERT(directory_p == ((VTOI(fvp)->i_e2fs_mode & IFMT) == IFDIR));
 	KASSERT((tvp == NULL) || (directory_p == (tvp->v_type == VDIR)));
 	KASSERT((tvp == NULL) || (directory_p ==
 		((VTOI(tvp)->i_e2fs_mode & IFMT) == IFDIR)));
-	if (directory_p) {
-		if (VTOI(fvp)->i_flag & IN_RENAME)
-			return EINVAL;
-		VTOI(fvp)->i_flag |= IN_RENAME;
-	}
 
 	reparent_p = (fdvp != tdvp);
 	KASSERT(reparent_p == (VTOI(fdvp)->i_number != VTOI(tdvp)->i_number));
@@ -516,8 +503,6 @@ whymustithurtsomuch:
 	KASSERT(0 < VTOI(fvp)->i_e2fs_nlink);
 	VTOI(fvp)->i_e2fs_nlink--;
 	VTOI(fvp)->i_flag |= IN_CHANGE;
-	if (directory_p)
-		VTOI(fvp)->i_flag &=~ IN_RENAME;
 	return error;
 }
 

Index: src/sys/ufs/ufs/inode.h
diff -u src/sys/ufs/ufs/inode.h:1.60 src/sys/ufs/ufs/inode.h:1.61
--- src/sys/ufs/ufs/inode.h:1.60	Sat May  5 04:08:53 2012
+++ src/sys/ufs/ufs/inode.h	Mon Jun  4 20:13:47 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: inode.h,v 1.60 2012/05/05 04:08:53 yamt Exp $	*/
+/*	$NetBSD: inode.h,v 1.61 2012/06/04 20:13:47 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1982, 1989, 1993
@@ -238,7 +238,7 @@ struct inode {
 #define	IN_MODIFY	0x2000		/* Modification time update request. */
 #define	IN_MODIFIED	0x0008		/* Inode has been modified. */
 #define	IN_ACCESSED	0x0010		/* Inode has been accessed. */
-#define	IN_RENAME	0x0020		/* Inode is being renamed. */
+/* #define	IN_UNUSED	0x0020		/* unused, was IN_RENAME */
 #define	IN_SHLOCK	0x0040		/* File has shared lock. */
 #define	IN_EXLOCK	0x0080		/* File has exclusive lock. */
 #define	IN_CLEANING	0x0100		/* LFS: file is being cleaned */

Index: src/sys/ufs/ufs/ufs_rename.c
diff -u src/sys/ufs/ufs/ufs_rename.c:1.4 src/sys/ufs/ufs/ufs_rename.c:1.5
--- src/sys/ufs/ufs/ufs_rename.c:1.4	Mon Jun  4 19:58:57 2012
+++ src/sys/ufs/ufs/ufs_rename.c	Mon Jun  4 20:13:47 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_rename.c,v 1.4 2012/06/04 19:58:57 riastradh Exp $	*/
+/*	$NetBSD: ufs_rename.c,v 1.5 2012/06/04 20:13:47 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_rename.c,v 1.4 2012/06/04 19:58:57 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_rename.c,v 1.5 2012/06/04 20:13:47 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -321,24 +321,11 @@ ufs_gro_rename(struct mount *mp, kauth_c
 	if ((nlink_t)VTOI(fvp)->i_nlink >= LINK_MAX)
 		return EMLINK;
 
-	/*
-	 * XXX There is a pile of logic here to handle a voodoo flag
-	 * IN_RENAME.  I think this is a vestige of days when the file
-	 * system hackers didn't understand concurrency or race
-	 * conditions; I believe it serves no useful function
-	 * whatsoever.
-	 */
-
 	directory_p = (fvp->v_type == VDIR);
 	KASSERT(directory_p == ((VTOI(fvp)->i_mode & IFMT) == IFDIR));
 	KASSERT((tvp == NULL) || (directory_p == (tvp->v_type == VDIR)));
 	KASSERT((tvp == NULL) || (directory_p ==
 		((VTOI(tvp)->i_mode & IFMT) == IFDIR)));
-	if (directory_p) {
-		if (VTOI(fvp)->i_flag & IN_RENAME)
-			return EINVAL;
-		VTOI(fvp)->i_flag |= IN_RENAME;
-	}
 
 	reparent_p = (fdvp != tdvp);
 	KASSERT(reparent_p == (VTOI(fdvp)->i_number != VTOI(tdvp)->i_number));
@@ -562,8 +549,6 @@ whymustithurtsomuch:
 	VTOI(fvp)->i_nlink--;
 	DIP_ASSIGN(VTOI(fvp), nlink, VTOI(fvp)->i_nlink);
 	VTOI(fvp)->i_flag |= IN_CHANGE;
-	if (directory_p)
-		VTOI(fvp)->i_flag &=~ IN_RENAME;
 	UFS_WAPBL_UPDATE(fvp, NULL, NULL, 0);
 
 arghmybrainhurts:
@@ -571,9 +556,6 @@ arghmybrainhurts:
 
 ihateyou:
 	fstrans_done(mp);
-	/* XXX UFS kludge -- get rid of me with IN_RENAME!  */
-	if (directory_p)
-		VTOI(fvp)->i_flag &=~ IN_RENAME;
 	return error;
 }
 

Index: src/sys/ufs/ufs/ufs_vnops.c
diff -u src/sys/ufs/ufs/ufs_vnops.c:1.209 src/sys/ufs/ufs/ufs_vnops.c:1.210
--- src/sys/ufs/ufs/ufs_vnops.c:1.209	Wed May  9 00:21:18 2012
+++ src/sys/ufs/ufs/ufs_vnops.c	Mon Jun  4 20:13:47 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_vnops.c,v 1.209 2012/05/09 00:21:18 riastradh Exp $	*/
+/*	$NetBSD: ufs_vnops.c,v 1.210 2012/06/04 20:13:47 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.209 2012/05/09 00:21:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.210 2012/06/04 20:13:47 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ffs.h"
@@ -1173,10 +1173,6 @@ ufs_rmdir(void *v)
 	 * directory and thus be non-empty.)
 	 */
 	error = 0;
-	if (ip->i_flag & IN_RENAME) {
-		error = EINVAL;
-		goto out;
-	}
 	if (ip->i_nlink != 2 ||
 	    !ufs_dirempty(ip, dp->i_number, cnp->cn_cred)) {
 		error = ENOTEMPTY;

Index: src/usr.sbin/pstat/pstat.c
diff -u src/usr.sbin/pstat/pstat.c:1.118 src/usr.sbin/pstat/pstat.c:1.119
--- src/usr.sbin/pstat/pstat.c:1.118	Wed Aug 31 13:32:39 2011
+++ src/usr.sbin/pstat/pstat.c	Mon Jun  4 20:13:47 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: pstat.c,v 1.118 2011/08/31 13:32:39 joerg Exp $	*/
+/*	$NetBSD: pstat.c,v 1.119 2012/06/04 20:13:47 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1980, 1991, 1993, 1994
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 19
 #if 0
 static char sccsid[] = "@(#)pstat.c	8.16 (Berkeley) 5/9/95";
 #else
-__RCSID("$NetBSD: pstat.c,v 1.118 2011/08/31 13:32:39 joerg Exp $");
+__RCSID("$NetBSD: pstat.c,v 1.119 2012/06/04 20:13:47 riastradh Exp $");
 #endif
 #endif /* not lint */
 
@@ -453,7 +453,6 @@ const struct flagbit_desc ufs_flags[] = 
 	{ IN_UPDATE,	'U' },
 	{ IN_MODIFIED,	'M' },
 	{ IN_ACCESSED,	'a' },
-	{ IN_RENAME,	'R' },
 	{ IN_SHLOCK,	'S' },
 	{ IN_EXLOCK,	'E' },
 	{ IN_CLEANING,	'c' },

Reply via email to