Module Name:    src
Committed By:   riastradh
Date:           Sat Sep  5 02:55:39 UTC 2020

Modified Files:
        src/sys/ufs/lfs: lfs_vnops.c ulfs_lookup.c
        src/sys/ufs/ufs: ufs_lookup.c ufs_vnops.c
        src/tests/fs/vfs: t_renamerace.c

Log Message:
Revert "ufs: Prevent mkdir from choking on deleted directories."

This change made no sense and should not have been committed.


To generate a diff of this commit:
cvs rdiff -u -r1.334 -r1.335 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -u -r1.45 -r1.46 src/sys/ufs/lfs/ulfs_lookup.c
cvs rdiff -u -r1.154 -r1.155 src/sys/ufs/ufs/ufs_lookup.c
cvs rdiff -u -r1.257 -r1.258 src/sys/ufs/ufs/ufs_vnops.c
cvs rdiff -u -r1.39 -r1.40 src/tests/fs/vfs/t_renamerace.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/lfs/lfs_vnops.c
diff -u src/sys/ufs/lfs/lfs_vnops.c:1.334 src/sys/ufs/lfs/lfs_vnops.c:1.335
--- src/sys/ufs/lfs/lfs_vnops.c:1.334	Sat Sep  5 02:47:48 2020
+++ src/sys/ufs/lfs/lfs_vnops.c	Sat Sep  5 02:55:38 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: lfs_vnops.c,v 1.334 2020/09/05 02:47:48 riastradh Exp $	*/
+/*	$NetBSD: lfs_vnops.c,v 1.335 2020/09/05 02:55:38 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc.
@@ -125,7 +125,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.334 2020/09/05 02:47:48 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.335 2020/09/05 02:55:38 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -991,13 +991,6 @@ lfs_mkdir(void *v)
 		*ap->a_vpp = NULL;
 		goto out;
 	}
-	if (VTOI(*ap->a_vpp)->i_size == 0) {
-		/* directory has been rmdir'd */
-		vput(*ap->a_vpp);
-		*ap->a_vpp = NULL;
-		error = ENOENT;
-		goto out;
-	}
 
 	tvp = *ap->a_vpp;
 	MARK_VNODE(tvp);

Index: src/sys/ufs/lfs/ulfs_lookup.c
diff -u src/sys/ufs/lfs/ulfs_lookup.c:1.45 src/sys/ufs/lfs/ulfs_lookup.c:1.46
--- src/sys/ufs/lfs/ulfs_lookup.c:1.45	Sat Sep  5 02:47:48 2020
+++ src/sys/ufs/lfs/ulfs_lookup.c	Sat Sep  5 02:55:38 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ulfs_lookup.c,v 1.45 2020/09/05 02:47:48 riastradh Exp $	*/
+/*	$NetBSD: ulfs_lookup.c,v 1.46 2020/09/05 02:55:38 riastradh Exp $	*/
 /*  from NetBSD: ufs_lookup.c,v 1.135 2015/07/11 11:04:48 mlelstv  */
 
 /*
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ulfs_lookup.c,v 1.45 2020/09/05 02:47:48 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ulfs_lookup.c,v 1.46 2020/09/05 02:55:38 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_lfs.h"
@@ -522,7 +522,6 @@ found:
 		    results->ulr_offset + LFS_DIRSIZ(fs, ep);
 		DIP_ASSIGN(dp, size, dp->i_size);
 		dp->i_state |= IN_CHANGE | IN_UPDATE;
-		uvm_vnp_setsize(vdp, dp->i_size);
 	}
 	brelse(bp, 0);
 
@@ -847,7 +846,6 @@ ulfs_direnter(struct vnode *dvp, const s
 		dp->i_size = ulr->ulr_offset + ulr->ulr_count;
 		DIP_ASSIGN(dp, size, dp->i_size);
 		dp->i_state |= IN_CHANGE | IN_UPDATE;
-		uvm_vnp_setsize(dvp, dp->i_size);
 	}
 	/*
 	 * Get the block containing the space for the new directory entry.

Index: src/sys/ufs/ufs/ufs_lookup.c
diff -u src/sys/ufs/ufs/ufs_lookup.c:1.154 src/sys/ufs/ufs/ufs_lookup.c:1.155
--- src/sys/ufs/ufs/ufs_lookup.c:1.154	Sat Sep  5 02:47:48 2020
+++ src/sys/ufs/ufs/ufs_lookup.c	Sat Sep  5 02:55:39 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_lookup.c,v 1.154 2020/09/05 02:47:48 riastradh Exp $	*/
+/*	$NetBSD: ufs_lookup.c,v 1.155 2020/09/05 02:55:39 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.154 2020/09/05 02:47:48 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.155 2020/09/05 02:55:39 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ffs.h"
@@ -667,7 +667,6 @@ found:
 		dp->i_size = newisize;
 		DIP_ASSIGN(dp, size, dp->i_size);
 		dp->i_flag |= IN_CHANGE | IN_UPDATE;
-		uvm_vnp_setsize(vdp, dp->i_size);
 		UFS_WAPBL_UPDATE(vdp, NULL, NULL, UPDATE_DIROP);
 	}
 	brelse(bp, 0);
@@ -957,7 +956,6 @@ ufs_dircompact(struct vnode *dvp, const 
 		dp->i_size = ulr->ulr_offset + ulr->ulr_count;
 		DIP_ASSIGN(dp, size, dp->i_size);
 		dp->i_flag |= IN_CHANGE | IN_UPDATE;
-		uvm_vnp_setsize(dvp, dp->i_size);
 		UFS_WAPBL_UPDATE(dvp, NULL, NULL, UPDATE_DIROP);
 	}
 	/*

Index: src/sys/ufs/ufs/ufs_vnops.c
diff -u src/sys/ufs/ufs/ufs_vnops.c:1.257 src/sys/ufs/ufs/ufs_vnops.c:1.258
--- src/sys/ufs/ufs/ufs_vnops.c:1.257	Sat Sep  5 02:47:48 2020
+++ src/sys/ufs/ufs/ufs_vnops.c	Sat Sep  5 02:55:39 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_vnops.c,v 1.257 2020/09/05 02:47:48 riastradh Exp $	*/
+/*	$NetBSD: ufs_vnops.c,v 1.258 2020/09/05 02:55:39 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.257 2020/09/05 02:47:48 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.258 2020/09/05 02:55:39 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ffs.h"
@@ -1253,13 +1253,6 @@ ufs_mkdir(void *v)
 		*ap->a_vpp = NULL;
 		goto out;
 	}
-	if (VTOI(*ap->a_vpp)->i_size == 0) {
-		/* directory has been rmdir'd */
-		vput(*ap->a_vpp);
-		*ap->a_vpp = NULL;
-		error = ENOENT;
-		goto out;
-	}
 	error = UFS_WAPBL_BEGIN(ap->a_dvp->v_mount);
 	if (error) {
 		vput(*ap->a_vpp);

Index: src/tests/fs/vfs/t_renamerace.c
diff -u src/tests/fs/vfs/t_renamerace.c:1.39 src/tests/fs/vfs/t_renamerace.c:1.40
--- src/tests/fs/vfs/t_renamerace.c:1.39	Sat Sep  5 02:47:49 2020
+++ src/tests/fs/vfs/t_renamerace.c	Sat Sep  5 02:55:39 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: t_renamerace.c,v 1.39 2020/09/05 02:47:49 riastradh Exp $	*/
+/*	$NetBSD: t_renamerace.c,v 1.40 2020/09/05 02:55:39 riastradh Exp $	*/
 
 /*
  * Modified for rump and atf from a program supplied
@@ -248,6 +248,8 @@ renamerace_cycle(const atf_tc_t *tc, con
 		atf_tc_skip("directories not supported by file system");
 	if (FSTYPE_RUMPFS(tc))
 		atf_tc_skip("rename not supported by file system");
+	if (FSTYPE_P2K_FFS(tc))
+		atf_tc_expect_fail("assertion \"vp->v_size == ip->i_size\" failed");
 	if (FSTYPE_PUFFS(tc))
 		atf_tc_expect_fail("assertion \"dfd\" failed");
 	if (FSTYPE_NFS(tc))

Reply via email to