Module Name:    src
Committed By:   pooka
Date:           Wed May 19 13:20:32 UTC 2010

Modified Files:
        src/share/man/man9: vnodeops.9

Log Message:
* document VOP_DELETEEXTATTR
* remove "vector element" from summary table:
   1) deleteextattr caused problems for 80col rendering
   2) it's not correct on NetBSD, we use the VOFFSET instead (!)


To generate a diff of this commit:
cvs rdiff -u -r1.77 -r1.78 src/share/man/man9/vnodeops.9

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/man/man9/vnodeops.9
diff -u src/share/man/man9/vnodeops.9:1.77 src/share/man/man9/vnodeops.9:1.78
--- src/share/man/man9/vnodeops.9:1.77	Mon May  4 20:08:07 2009
+++ src/share/man/man9/vnodeops.9	Wed May 19 13:20:32 2010
@@ -1,4 +1,4 @@
-.\"     $NetBSD: vnodeops.9,v 1.77 2009/05/04 20:08:07 wiz Exp $
+.\"     $NetBSD: vnodeops.9,v 1.78 2010/05/19 13:20:32 pooka Exp $
 .\"
 .\" Copyright (c) 2001, 2005, 2006 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -27,7 +27,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd August 5, 2008
+.Dd May 19, 2010
 .Dt VNODEOPS 9
 .Os
 .Sh NAME
@@ -76,7 +76,8 @@
 .Nm VOP_BWRITE ,
 .Nm VOP_GETEXTATTR ,
 .Nm VOP_SETEXTATTR ,
-.Nm VOP_LISTEXTATTR
+.Nm VOP_LISTEXTATTR ,
+.Nm VOP_DELETEEXTATTR
 .Nd vnode operations
 .Sh SYNOPSIS
 .In sys/param.h
@@ -206,6 +207,9 @@
 .Ft int
 .Fn VOP_LISTEXTATTR "struct vnode *vp" "int attrnamespace" "struct uio *uio" \
 "size_t *size" "kauth_cred_t cred"
+.Ft int
+.Fn VOP_DELETEEXTATTR "struct vnode *vp" "int attrnamespace" \
+"const char *name" "kauth_cred_t cred"
 .Pp
 Not all header files are required for each function.
 .Sh DESCRIPTION
@@ -222,56 +226,56 @@
 .Pp
 Functions in the vnode operations vector are invoked using specialized
 macros.
-The following table lists the elements of the vnode operations vector,
-the corresponding invocation macro, and a description of the element.
+The following table gives a summary of the operations.
 .Pp
-.Bl -column "int (*vop_strategy)()" "VOP_LISTEXTATTR" "Wake up process sleeping on lock" -compact
-.It Sy Vector element Ta Sy Macro Ta Sy Description
-.It int (*vop_lookup)()	VOP_LOOKUP	Lookup file name in name cache
-.It int (*vop_create)()	VOP_CREATE	Create a new file
-.It int (*vop_mknod)()	VOP_MKNOD	Make a new device
-.It int (*vop_open)()	VOP_OPEN	Open a file
-.It int (*vop_close)()	VOP_CLOSE	Close a file
-.It int (*vop_access)()	VOP_ACCESS	Determine file accessibility
-.It int (*vop_getattr)()	VOP_GETATTR	Get file attributes
-.It int (*vop_setattr)()	VOP_SETATTR	Set file attributes
-.It int (*vop_read)()	VOP_READ	Read from a file
-.It int (*vop_write)()	VOP_WRITE	Write to a file
-.It int (*vop_ioctl)()	VOP_IOCTL	Perform device-specific I/O
-.It int (*vop_fcntl)()	VOP_FCNTL	Perform file control
-.It int (*vop_poll)()	VOP_POLL	Test if poll event has occurred
-.It int (*vop_kqfilter)()	VOP_KQFILTER	Register a knote
-.It int (*vop_revoke)()	VOP_REVOKE	Eliminate vode activity
-.It int (*vop_mmap)()	VOP_MMAP	Map file into user address space
-.It int (*vop_fsync)()	VOP_FSYNC	Flush pending data to disk
-.It int (*vop_seek)()	VOP_SEEK	Test if file is seekable
-.It int (*vop_remove)()	VOP_REMOVE	Remove a file
-.It int (*vop_link)()	VOP_LINK	Link a file
-.It int (*vop_rename)()	VOP_RENAME	Rename a file
-.It int (*vop_mkdir)()	VOP_MKDIR	Make a new directory
-.It int (*vop_rmdir)()	VOP_RMDIR	Remove a directory
-.It int (*vop_symlink)()	VOP_SYMLINK	Create a symbolic link
-.It int (*vop_readdir)()	VOP_READDIR	Read directory entry
-.It int (*vop_readlink)()	VOP_READLINK	Read contents of a symlink
-.It int (*vop_abortop)()	VOP_ABORTOP	Abort pending operation
-.It int (*vop_inactive)()	VOP_INACTIVE	Release the inactive vnode
-.It int (*vop_reclaim)()	VOP_RECLAIM	Reclaim vnode for another file
-.It int (*vop_lock)()	VOP_LOCK	Sleep until vnode lock is free
-.It int (*vop_unlock)()	VOP_UNLOCK	Wake up process sleeping on lock
-.It int (*vop_islocked)()	VOP_ISLOCKED	Test if vnode is locked
-.It int (*vop_bmap)()	VOP_BMAP	Logical block number conversion
-.It int (*vop_print)()	VOP_PRINT	Print debugging information
-.It int (*vop_pathconf)()	VOP_PATHCONF	Return POSIX pathconf data
-.It int (*vop_advlock)()	VOP_ADVLOCK	Advisory record locking
-.It int (*vop_lease)()	VOP_LEASE	Validate vnode credentials
-.It int (*vop_whiteout)()	VOP_WHITEOUT	Whiteout vnode
-.It int (*vop_getpages)()	VOP_GETPAGES	Read VM pages from file
-.It int (*vop_putpages)()	VOP_PUTPAGES	Write VM pages to file
-.It int (*vop_strategy)()	VOP_STRATEGY	Read/write a file system buffer
-.It int (*vop_bwrite)()	VOP_BWRITE	Write a file system buffer
-.It int (*vop_getextattr)()	VOP_GETEXTATTR	Get extended attribute
-.It int (*vop_setextattr)()	VOP_SETEXTATTR	Set extended attribute
-.It int (*vop_listextattr)()	VOP_LISTEXTATTR	List extended attributes
+.Bl -column "VOP_DELETEEXTATTR" "Wake up process sleeping on lock" -compact
+.It Sy Macro Ta Sy Description
+.It VOP_LOOKUP	Lookup file name in name cache
+.It VOP_CREATE	Create a new file
+.It VOP_MKNOD	Make a new device
+.It VOP_OPEN	Open a file
+.It VOP_CLOSE	Close a file
+.It VOP_ACCESS	Determine file accessibility
+.It VOP_GETATTR	Get file attributes
+.It VOP_SETATTR	Set file attributes
+.It VOP_READ	Read from a file
+.It VOP_WRITE	Write to a file
+.It VOP_IOCTL	Perform device-specific I/O
+.It VOP_FCNTL	Perform file control
+.It VOP_POLL	Test if poll event has occurred
+.It VOP_KQFILTER	Register a knote
+.It VOP_REVOKE	Eliminate vode activity
+.It VOP_MMAP	Map file into user address space
+.It VOP_FSYNC	Flush pending data to disk
+.It VOP_SEEK	Test if file is seekable
+.It VOP_REMOVE	Remove a file
+.It VOP_LINK	Link a file
+.It VOP_RENAME	Rename a file
+.It VOP_MKDIR	Make a new directory
+.It VOP_RMDIR	Remove a directory
+.It VOP_SYMLINK	Create a symbolic link
+.It VOP_READDIR	Read directory entry
+.It VOP_READLINK	Read contents of a symlink
+.It VOP_ABORTOP	Abort pending operation
+.It VOP_INACTIVE	Release the inactive vnode
+.It VOP_RECLAIM	Reclaim vnode for another file
+.It VOP_LOCK	Sleep until vnode lock is free
+.It VOP_UNLOCK	Wake up process sleeping on lock
+.It VOP_ISLOCKED	Test if vnode is locked
+.It VOP_BMAP	Logical block number conversion
+.It VOP_PRINT	Print debugging information
+.It VOP_PATHCONF	Return POSIX pathconf data
+.It VOP_ADVLOCK	Advisory record locking
+.It VOP_LEASE	Validate vnode credentials
+.It VOP_WHITEOUT	Whiteout vnode
+.It VOP_GETPAGES	Read VM pages from file
+.It VOP_PUTPAGES	Write VM pages to file
+.It VOP_STRATEGY	Read/write a file system buffer
+.It VOP_BWRITE	Write a file system buffer
+.It VOP_GETEXTATTR	Get extended attribute
+.It VOP_SETEXTATTR	Set extended attribute
+.It VOP_LISTEXTATTR	List extended attributes
+.It VOP_DELETEEXTATTR	Remove extended attribute
 .El
 .Pp
 The implementation details of the vnode operations vector are not
@@ -1401,6 +1405,18 @@
 The argument
 .Fa cred
 specifies the user credentials to use when authorizing the request.
+.It Fn VOP_DELETEEXTATTR "vp" "attrnamespace" "name" "cred"
+Remove attribute
+.Fa name
+from file associated with
+.Fa vp .
+The argument
+.Fa attrnamespace
+specifies the extended attribute namespace.
+If full removal is not supported, the file system should return
+.Er EOPNOTSUPP
+to allow the caller to zero out the value with
+.Fn VOP_SETEXTATTR .
 .El
 .Sh ERRORS
 .Bl -tag -width Er

Reply via email to