Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Feb 1998 12:48:06 +0900 (JST)
From:      Michael Hancock <michaelh@cet.co.jp>
To:        freebsd-current@FreeBSD.ORG
Subject:   VFS_VRELE - WILLRELE must die
Message-ID:  <Pine.SV4.3.95.980227124118.2308A-101000@parkplace.cet.co.jp>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1804928587-888551286=:2308
Content-Type: TEXT/PLAIN; charset=US-ASCII

Implement the complement to all vpp generating ops called in the vfs_vn
layer.  Some people call this making it reflexive.

The 4K tar ball is attached, but I can upload this somewhere if you're
mailer doesn't do MIME. 

Regards,


Mike Hancock
------------------
The intent is to get rid of WILLRELE in vnode_if.src by making
a complement to all ops that return a vpp, VFS_VRELE.  This is
initially only for file systems that implement the following ops
that do a WILLRELE:

	vop_create, vop_whiteout, vop_mknod, vop_remove, vop_link,
	vop_rename, vop_mkdir, vop_rmdir, vop_symlink

This is initial DNA that doesn't do anything yet.  VFS_VRELE is
implemented but not called.  In the next phase vop implementations
vrele and the vrele part of vput will be moved to the top layer
vfs_vnops and made visible to all layers.  This will only be done
for vnode arguments that are released by the various fs vop
implementations.  Unlocking will still be done in the per fs layer
but the refcount decrement will be initiated at the top because it
doesn't hurt to hold a vnode reference a little longer.

VFS_VRELE implementations were made for the following file systems:

	ffs_vfsops.c mfs_vfsops.c nfs_vfsops.c msdosfs_vfsops.c
	devfs_vfsops.c nullfs_vfsops.c union_vfsops.c umapfs_vfsops.c

The following implementations just do ENOTSUPP because they don't
implement any of the WILLRELE vops:

	procfs_procfs.c cd9660_vfsops.c

The following code snippet from vn_open is an example of how it will
be added later.  vop_create releases the directory vnode, but we
will change it so that it is initiated in vn_open after the VOP_CREATE
returns.

Now...

	if (error = VOP_CREATE(ndp->ni_dvp, &ndp->ni_vp,
	    &ndp->ni_cnd, vap))
		return (error);

Later...

	error = VOP_CREATE(ndp->ni_dvp, &ndp->ni_vp, &ndp->ni_cnd, vap);
	VFS_VRELE(ndp->ni_dvp->vmount, ndp->ni_dvp);
	if (error)
		return (error);

---559023410-1804928587-888551286=:2308
Content-Type: APPLICATION/octet-stream; name="vfs_vrele.tgz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SV4.3.95.980227124806.2308B@parkplace.cet.co.jp>
Content-Description: 

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

---559023410-1804928587-888551286=:2308--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SV4.3.95.980227124118.2308A-101000>