Change vnode operations create, mknod, mkdir and symlink to keep the

directory node dvp locked on return.

Discussed on tech-kern@
This commit is contained in:
hannken 2014-01-17 10:52:36 +00:00
parent 03a295b74f
commit 10a361faf8

View File

@ -1,4 +1,4 @@
# $NetBSD: vnode_if.src,v 1.63 2011/10/14 09:23:31 hannken Exp $
# $NetBSD: vnode_if.src,v 1.64 2014/01/17 10:52:36 hannken Exp $
#
# Copyright (c) 1992, 1993
# The Regents of the University of California. All rights reserved.
@ -88,26 +88,28 @@ vop_lookup {
};
#
#% create dvp L U U
#% create dvp L L L
#% create vpp - L -
#
#! create cnp CREATE, LOCKPARENT
#
vop_create {
IN LOCKED=YES WILLPUT struct vnode *dvp;
VERSION 2
IN LOCKED=YES struct vnode *dvp;
OUT WILLMAKE struct vnode **vpp;
IN struct componentname *cnp;
IN struct vattr *vap;
};
#
#% mknod dvp L U U
#% mknod dvp L L L
#% mknod vpp - L -
#
#! mknod cnp CREATE, LOCKPARENT
#
vop_mknod {
IN LOCKED=YES WILLPUT struct vnode *dvp;
VERSION 2
IN LOCKED=YES struct vnode *dvp;
OUT WILLMAKE struct vnode **vpp;
IN struct componentname *cnp;
IN struct vattr *vap;
@ -298,13 +300,14 @@ vop_rename {
};
#
#% mkdir dvp L U U
#% mkdir dvp L L L
#% mkdir vpp - L -
#
#! mkdir cnp CREATE, LOCKPARENT
#
vop_mkdir {
IN LOCKED=YES WILLPUT struct vnode *dvp;
VERSION 2
IN LOCKED=YES struct vnode *dvp;
OUT WILLMAKE struct vnode **vpp;
IN struct componentname *cnp;
IN struct vattr *vap;
@ -323,13 +326,14 @@ vop_rmdir {
};
#
#% symlink dvp L U U
#% symlink dvp L L L
#% symlink vpp - L -
#
#! symlink cnp CREATE, LOCKPARENT
#
vop_symlink {
IN LOCKED=YES WILLPUT struct vnode *dvp;
VERSION 2
IN LOCKED=YES struct vnode *dvp;
OUT WILLMAKE struct vnode **vpp;
IN struct componentname *cnp;
IN struct vattr *vap;