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' },