Module Name: src Committed By: riz Date: Sun Jul 17 15:36:05 UTC 2011
Modified Files: src/distrib/sets/lists/comp [netbsd-5]: mi src/lib/libc/sys [netbsd-5]: Makefile.inc extattr_get_file.2 src/lib/libpuffs [netbsd-5]: dispatcher.c puffs.c puffs.h src/sys/fs/puffs [netbsd-5]: puffs_msgif.h puffs_vfsops.c puffs_vnops.c src/sys/kern [netbsd-5]: vfs_xattr.c vnode_if.c src/sys/sys [netbsd-5]: Makefile extattr.h vnode_if.h src/sys/ufs/ffs [netbsd-5]: ffs_vnops.c src/sys/ufs/ufs [netbsd-5]: ufs_extattr.c Log Message: Pull up following revision(s) (requested by manu in ticket #1645): lib/libc/sys/Makefile.inc 1.207 via patch lib/libc/sys/extattr_get_file.2 patch lib/libpuffs/dispatcher.c 1.34,1.36 via patch lib/libpuffs/puffs.c 1.107 via patch lib/libpuffs/puffs.h 1.115,1.118 via patch sys/fs/puffs/puffs_msgif.h 1.71,1.76 via patch sys/fs/puffs/puffs_vfsops.c 1.88 via patch sys/fs/puffs/puffs_vnops.c 1.145,1.154 via patch sys/kern/vfs_xattr.c 1.24-1.27 via patch sys/kern/vnode_if.c 1.87 via patch sys/sys/Makefile 1.133 via patch sys/sys/extattr.h 1.6 via patch sys/sys/vnode_if.h 1.81 via patch sys/ufs/ffs/ffs_vnops.c patch sys/ufs/ufs/ufs_extattr.c 1.31,1.34 via patch * support extended attributes * bump major due to structure growth * add some spare space * remove ABI sillyness Support extended attributes. Fix multiple non compliances in our Linux-like extattr API, and make it public so that it can be used. Improve a bit listxattr(2). It attemps to list both system and user extended attributes, and it faled if calling user did not have privilege for reading system EA. Now we just lise user EA and skip system EA in reading them is not allowed. Fix bug introduced in previous commuit: Do not vrele() a vnode we did not obtained. Improve UFS1 extended attributes usability - autocreate attribute backing file for new attributes - autoload attributes when issuing extattrctl start - when autoloading attributes, do not display garbage warning when looking up entries that got ENOENT Add a flag to VOP_LISTEXTATTR(9) so that the vnode interface can tell the filesystem in which format extended attribute shall be listed. There are currently two formats: - NUL-terminated strings, used for listxattr(2), this is the default. - one byte length-pprefixed, non NUL-terminated strings, used for extattr_list_file(2), which is obtanined by setting the EXTATTR_LIST_PREFIXLEN flag to VOP_LISTEXTATTR(9) This approach avoid the need for converting the list back and forth, except in libperfuse, since FUSE uses NUL-terminated strings, and the kernel may have requested EXTATTR_LIST_PREFIXLEN. To generate a diff of this commit: cvs rdiff -u -r1.1201.2.15 -r1.1201.2.16 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.196.2.1 -r1.196.2.2 src/lib/libc/sys/Makefile.inc cvs rdiff -u -r1.3 -r1.3.32.1 src/lib/libc/sys/extattr_get_file.2 cvs rdiff -u -r1.32.4.1 -r1.32.4.2 src/lib/libpuffs/dispatcher.c cvs rdiff -u -r1.92.4.5 -r1.92.4.6 src/lib/libpuffs/puffs.c cvs rdiff -u -r1.108.4.4 -r1.108.4.5 src/lib/libpuffs/puffs.h cvs rdiff -u -r1.65.20.2 -r1.65.20.3 src/sys/fs/puffs/puffs_msgif.h cvs rdiff -u -r1.81.8.1 -r1.81.8.2 src/sys/fs/puffs/puffs_vfsops.c cvs rdiff -u -r1.129.4.8 -r1.129.4.9 src/sys/fs/puffs/puffs_vnops.c cvs rdiff -u -r1.19.6.1 -r1.19.6.2 src/sys/kern/vfs_xattr.c cvs rdiff -u -r1.78 -r1.78.4.1 src/sys/kern/vnode_if.c cvs rdiff -u -r1.114 -r1.114.4.1 src/sys/sys/Makefile cvs rdiff -u -r1.4 -r1.4.74.1 src/sys/sys/extattr.h cvs rdiff -u -r1.72 -r1.72.20.1 src/sys/sys/vnode_if.h cvs rdiff -u -r1.104.4.7 -r1.104.4.8 src/sys/ufs/ffs/ffs_vnops.c cvs rdiff -u -r1.21.14.2 -r1.21.14.3 src/sys/ufs/ufs/ufs_extattr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.