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);