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