Module Name:    src
Committed By:   dholland
Date:           Sat May 17 07:10:27 UTC 2014

Modified Files:
        src/sys/ufs/lfs: lfs_vnops.c

Log Message:
Merge ulfs_create into lfs_create.


To generate a diff of this commit:
cvs rdiff -u -r1.267 -r1.268 src/sys/ufs/lfs/lfs_vnops.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.267 src/sys/ufs/lfs/lfs_vnops.c:1.268
--- src/sys/ufs/lfs/lfs_vnops.c:1.267	Sat May 17 07:09:59 2014
+++ src/sys/ufs/lfs/lfs_vnops.c	Sat May 17 07:10:27 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: lfs_vnops.c,v 1.267 2014/05/17 07:09:59 dholland Exp $	*/
+/*	$NetBSD: lfs_vnops.c,v 1.268 2014/05/17 07:10:27 dholland 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.267 2014/05/17 07:09:59 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.268 2014/05/17 07:10:27 dholland Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -858,37 +858,6 @@ lfs_mknod(void *v)
  * Create a regular file
  */
 int
-ulfs_create(void *v)
-{
-	struct vop_create_v3_args /* {
-		struct vnode		*a_dvp;
-		struct vnode		**a_vpp;
-		struct componentname	*a_cnp;
-		struct vattr		*a_vap;
-	} */ *ap = v;
-	int	error;
-	struct vnode *dvp = ap->a_dvp;
-	struct ulfs_lookup_results *ulr;
-
-	/* XXX should handle this material another way */
-	ulr = &VTOI(dvp)->i_crap;
-	ULFS_CHECK_CRAPCOUNTER(VTOI(dvp));
-
-	fstrans_start(dvp->v_mount, FSTRANS_SHARED);
-	error =
-	    ulfs_makeinode(MAKEIMODE(ap->a_vap->va_type, ap->a_vap->va_mode),
-			  dvp, ulr, ap->a_vpp, ap->a_cnp);
-	if (error) {
-		fstrans_done(dvp->v_mount);
-		return (error);
-	}
-	fstrans_done(dvp->v_mount);
-	VN_KNOTE(dvp, NOTE_WRITE);
-	VOP_UNLOCK(*ap->a_vpp);
-	return (0);
-}
-
-int
 lfs_create(void *v)
 {
 	struct vop_create_v3_args	/* {
@@ -899,14 +868,21 @@ lfs_create(void *v)
 	} */ *ap = v;
 	struct lfs *fs;
 	struct vnode *dvp, **vpp;
+	struct vattr *vap;
+	struct ulfs_lookup_results *ulr;
 	int error;
 
 	dvp = ap->a_dvp;
 	vpp = ap->a_vpp;
+	vap = ap->a_vap;
 
 	KASSERT(vpp != NULL);
 	KASSERT(*vpp == NULL);
 
+	/* XXX should handle this material another way */
+	ulr = &VTOI(dvp)->i_crap;
+	ULFS_CHECK_CRAPCOUNTER(VTOI(dvp));
+
 	fs = VFSTOULFS(dvp->v_mount)->um_lfs;
 	ASSERT_NO_SEGLOCK(fs);
 	if (fs->lfs_ronly) {
@@ -933,7 +909,18 @@ lfs_create(void *v)
 		return error;
 	}
 
-	error = ulfs_create(ap);
+	fstrans_start(dvp->v_mount, FSTRANS_SHARED);
+	error = ulfs_makeinode(MAKEIMODE(vap->va_type, vap->va_mode),
+			  dvp, ulr, vpp, ap->a_cnp);
+	if (error) {
+		fstrans_done(dvp->v_mount);
+		goto out;
+	}
+	fstrans_done(dvp->v_mount);
+	VN_KNOTE(dvp, NOTE_WRITE);
+	VOP_UNLOCK(*vpp);
+
+out:
 
 	UNMARK_VNODE(dvp);
 	UNMARK_VNODE(*vpp);

Reply via email to