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:
parent
03a295b74f
commit
10a361faf8
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user