Please, pull from git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git/ for-linus The big ones in that are * ->permission() API change (death to separate boolean argument, death to generic_permission() check_acl callback, death to file_permission(), death to exec_permission()) * nfs4 mknod() fixes (and end to pointless carrying vfsmount pointers in the guts of nfs) * further reduction of struct nameidata exposure, including the LOOKUP_... flags use * dchinner: per-sb shrinkers * hch: death to ->i_alloc_sem * jbacik: SEEK_HOLE/SEEK_DATA, ->fsync() API change. Also by jbacik: DCACHE_NEED_LOOKUP, which is going to be the basis for atomic_open-done-right (aside of originally intended uses in btrfs). Unfortunately, ->d_lock/->d_parent shite had sidetracked me in the last couple of weeks of last cycle, so atomic_open will have to wait for -rc2 or -rc3; *PLEASE* hold any unionfs or overlayfs merges until then. Other than that, there's a moderate bunch of assorted patches; I'll push more of that in the next pull request (i.e. folks who don't see their patches in the shortlog below, please wait for after the next vfs pull request before complaining) Shortlog: Al Viro (68): new helper: iterate_supers_type() make exec_permission(dir) really equivalent to inode_permission(dir, MAY_EXEC) switch udf_ioctl() to inode_permission() switch path_init() to exec_permission() consolidate BINPRM_FLAGS_ENFORCE_NONDUMP handling kill file_permission() completely move exec_permission() up to the rest of permission-related functions lockless get_write_access/deny_write_access kill check_acl callback of generic_permission() ->permission() sanitizing: MAY_NOT_BLOCK ->permission() sanitizing: pass MAY_NOT_BLOCK to ->check_acl() ->permission() sanitizing: don't pass flags to ->check_acl() ->permission() sanitizing: don't pass flags to generic_permission() ->permission() sanitizing: don't pass flags to ->permission() ->permission() sanitizing: don't pass flags to ->inode_permission() selinux: don't transliterate MAY_NOT_BLOCK to IPERM_FLAG_RCU ->permission() sanitizing: don't pass flags to exec_permission() massage generic_permission() to treat directories on a separate path no reason to keep exec_permission() separate now merge do_revalidate() into its only caller ->permission() sanitizing: document API changes kill IPERM_FLAG_RCU ecryptfs_inode_permission() doesn't need to bail out on RCU cifs: fix the type of cifs_demultiplex_thread() nfs4_closedata doesn't need to mess with struct path nfs4_opendata doesn't need struct path either nfs_open_context doesn't need struct path either nameidata_to_nfs_open_context() doesn't need nameidata, actually... fix mknod() on nfs4 (hopefully) Don't pass nameidata when calling vfs_create() from mknod() don't transliterate lower bits of ->intent.open.flags to FMODE_... don't pass nameidata to vfs_create() from ecryptfs_create() no need to check for LOOKUP_OPEN in ->create() instances LOOKUP_CREATE and LOOKUP_RENAME_TARGET can be set only on the last step jfs_ci_revalidate() is safe from RCU mode ceph: LOOKUP_OPEN is set only when it's the last component cifs_lookup(): LOOKUP_OPEN is set only on the last component nfs: LOOKUP_{OPEN,CREATE,EXCL} is set only on the last step kill LOOKUP_CONTINUE new helpers: kern_path_create/user_path_create switch do_spufs_create() to user_path_create(), fix double-unlock make sure that nsproxy_cache is initialized early enough switch devtmpfs object creation/removal to separate kernel thread switch devtmpfs to kern_path_create() devtmpfs: get rid of bogus mkdir in create_path() kill lookup_create() switch vfs_path_lookup() to struct path unexport kern_path_parent() Make ->d_sb assign-once and always non-NULL get rid of pointless checks for dentry->sb == NULL btrfs: kill magical embedded struct superblock kill useless checks for sb->s_op == NULL nfsd4_list_rec_dir(): don't bother with reopening rec_file deuglify squashfs_lookup() make d_splice_alias(ERR_PTR(err), dentry) = ERR_PTR(err) switch assorted clock drivers to debugfs_remove_recursive() arm: don't create useless copies to pass into debugfs_create_dir() coda_venus_readdir(): use offsetof() minix_getattr(): don't bother with ->d_parent don't open-code parent_ino() in assorted ->readdir() get rid of useless dget_parent() in fs/btrfs/ioctl.c get rid of useless dget_parent() in btrfs rename() and link() jfs_lookup(): don't bother with . or .. simplify gfs2_lookup() switch d_add_ci() to d_splice_alias() in "found negative" case as well Remove dead code in dget_parent() fix IN_DELETE_SELF on overwriting rename() on ramfs et.al. jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory Christoph Hellwig (10): fat: remove i_alloc_sem abuse fs: simplify handling of zero sized reads in __blockdev_direct_IO fs: kill i_alloc_sem rw_semaphore: remove up/down_read_non_owner fs: move inode_dio_wait calls into ->setattr fs: always maintain i_dio_count fs: simplify the blockdev_direct_IO prototype fs: move inode_dio_done to the end_io handler ext3: make ext3 mount default to barrier=1 reiserfs: make reiserfs default to barrier=flush Dave Chinner (13): vmscan: add shrink_slab tracepoints vmscan: shrinker->nr updates race and go wrong vmscan: reduce wind up shrinker->nr when shrinker can't do work vmscan: add customisable shrinker batch size inode: convert inode_stat.nr_unused to per-cpu counters inode: Make unused inode LRU per superblock inode: move to per-sb LRU locks superblock: move pin_sb_for_writeback() to fs/super.c superblock: introduce per-sb cache shrinker infrastructure inode: remove iprune_sem superblock: add filesystem shrinker operations vfs: increase shrinker batch size xfs: make use of new shrinker callout for the inode cache David Howells (1): AFS: Fix silly characters in a comment Jan Kara (2): ext4: Rewrite ext4_page_mkwrite() to use generic helpers isofs: Remove global fs lock Josef Bacik (7): fs: add a DCACHE_NEED_LOOKUP flag for d_flags fs: add SEEK_HOLE and SEEK_DATA flags Btrfs: implement our own ->llseek Ext4: handle SEEK_HOLE/SEEK_DATA generically fs: handle SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek drivers: fix up various ->llseek() implementations fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Kay Sievers (1): fs: seq_file - add event counter to simplify poll() support Konstantin Khlebnikov (1): vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp Randy Dunlap (1): mm/truncate.c: fix build for CONFIG_BLOCK not enabled Tobias Klauser (1): VFS: Fixup kerneldoc for generic_permission() Tomasz Stanislawski (1): anonfd: fix missing declaration Wanlong Gao (1): fs:update the NOTE of the file_operations structure Diffstat: Documentation/filesystems/Locking | 8 +- Documentation/filesystems/porting | 27 ++- Documentation/filesystems/vfs.txt | 30 ++- arch/arm/mach-tegra/clock.c | 7 +- arch/arm/mach-ux500/clock.c | 31 +-- arch/arm/plat-omap/clock.c | 12 +- arch/arm/plat-samsung/clock.c | 7 +- arch/arm/plat-spear/clock.c | 7 +- arch/powerpc/platforms/cell/spufs/file.c | 13 +- arch/powerpc/platforms/cell/spufs/inode.c | 29 +- arch/powerpc/platforms/cell/spufs/spufs.h | 2 +- arch/powerpc/platforms/cell/spufs/syscalls.c | 22 +- drivers/base/devtmpfs.c | 337 +++++++++++-------- drivers/block/pktcdvd.c | 2 +- drivers/char/generic_nvram.c | 4 + drivers/char/nvram.c | 2 + drivers/char/ps3flash.c | 13 +- drivers/macintosh/nvram.c | 4 + drivers/md/md.c | 26 +- drivers/mtd/ubi/cdev.c | 10 +- drivers/sh/clk/core.c | 7 +- drivers/staging/pohmelfs/dir.c | 2 +- drivers/staging/pohmelfs/inode.c | 11 +- drivers/usb/gadget/printer.c | 5 +- drivers/video/fb_defio.c | 11 +- fs/9p/acl.c | 4 +- fs/9p/acl.h | 2 +- fs/9p/v9fs_vfs.h | 3 +- fs/9p/vfs_file.c | 22 ++- fs/9p/vfs_inode.c | 6 +- fs/9p/vfs_inode_dotl.c | 4 +- fs/affs/affs.h | 2 +- fs/affs/file.c | 8 +- fs/afs/afs_vl.h | 2 +- fs/afs/internal.h | 4 +- fs/afs/security.c | 6 +- fs/afs/write.c | 18 +- fs/attr.c | 6 - fs/bad_inode.c | 5 +- fs/binfmt_elf.c | 3 +- fs/binfmt_elf_fdpic.c | 3 +- fs/binfmt_misc.c | 3 +- fs/block_dev.c | 17 +- fs/btrfs/acl.c | 5 +- fs/btrfs/ctree.h | 9 +- fs/btrfs/disk-io.c | 15 +- fs/btrfs/file.c | 169 +++++++++- fs/btrfs/inode.c | 25 +- fs/btrfs/ioctl.c | 16 +- fs/cachefiles/bind.c | 2 - fs/ceph/caps.c | 6 +- fs/ceph/dir.c | 21 +- fs/ceph/file.c | 22 +- fs/ceph/inode.c | 6 +- fs/ceph/super.h | 5 +- fs/cifs/cifsfs.c | 11 +- fs/cifs/cifsfs.h | 4 +- fs/cifs/connect.c | 5 +- fs/cifs/dir.c | 14 +- fs/cifs/file.c | 18 +- fs/cifs/readdir.c | 2 +- fs/coda/coda_int.h | 2 +- fs/coda/coda_linux.h | 2 +- fs/coda/dir.c | 9 +- fs/coda/file.c | 8 +- fs/coda/pioctl.c | 4 +- fs/dcache.c | 262 +++++---------- fs/direct-io.c | 88 ++++-- fs/ecryptfs/file.c | 7 +- fs/ecryptfs/inode.c | 37 +-- fs/efs/namei.c | 7 +- fs/exec.c | 14 +- fs/exofs/file.c | 10 +- fs/exofs/namei.c | 7 +- fs/ext2/acl.c | 4 +- fs/ext2/acl.h | 2 +- fs/ext2/ext2.h | 3 +- fs/ext2/file.c | 4 +- fs/ext2/inode.c | 6 +- fs/ext2/namei.c | 14 +- fs/ext3/acl.c | 4 +- fs/ext3/acl.h | 2 +- fs/ext3/fsync.c | 18 +- fs/ext3/inode.c | 8 +- fs/ext3/namei.c | 14 +- fs/ext3/super.c | 2 + fs/ext4/acl.c | 4 +- fs/ext4/acl.h | 2 +- fs/ext4/ext4.h | 2 +- fs/ext4/file.c | 21 ++ fs/ext4/fsync.c | 38 ++- fs/ext4/inode.c | 125 ++++---- fs/ext4/namei.c | 14 +- fs/fat/fat.h | 4 +- fs/fat/file.c | 8 +- fs/fat/inode.c | 10 +- fs/fat/namei_msdos.c | 29 +- fs/fat/namei_vfat.c | 6 +- fs/fs-writeback.c | 28 +-- fs/fuse/dir.c | 28 +- fs/fuse/file.c | 45 ++- fs/fuse/fuse_i.h | 3 +- fs/generic_acl.c | 4 +- fs/gfs2/acl.c | 4 +- fs/gfs2/acl.h | 2 +- fs/gfs2/bmap.c | 2 + fs/gfs2/file.c | 19 +- fs/gfs2/inode.c | 35 +-- fs/gfs2/inode.h | 2 +- fs/hfs/inode.c | 15 +- fs/hfsplus/hfsplus_fs.h | 3 +- fs/hfsplus/inode.c | 16 +- fs/hostfs/hostfs_kern.c | 21 +- fs/hpfs/dir.c | 4 + fs/hpfs/file.c | 7 +- fs/hpfs/hpfs_fn.h | 2 +- fs/hpfs/namei.c | 2 +- fs/hppfs/hppfs.c | 5 +- fs/inode.c | 129 +++----- fs/internal.h | 6 + fs/isofs/dir.c | 3 - fs/isofs/inode.c | 1 - fs/isofs/isofs.h | 1 - fs/isofs/namei.c | 13 +- fs/isofs/rock.c | 3 - fs/jffs2/acl.c | 4 +- fs/jffs2/acl.h | 2 +- fs/jffs2/dir.c | 9 +- fs/jffs2/file.c | 9 +- fs/jffs2/os-linux.h | 2 +- fs/jfs/acl.c | 4 +- fs/jfs/file.c | 11 +- fs/jfs/inode.c | 4 +- fs/jfs/jfs_acl.h | 2 +- fs/jfs/jfs_inode.h | 2 +- fs/jfs/namei.c | 49 +-- fs/libfs.c | 26 +- fs/logfs/dir.c | 4 +- fs/logfs/file.c | 11 +- fs/logfs/logfs.h | 2 +- fs/minix/inode.c | 3 +- fs/namei.c | 462 +++++++++++--------------- fs/namespace.c | 4 +- fs/ncpfs/file.c | 4 +- fs/nfs/cache_lib.c | 9 +- fs/nfs/dir.c | 87 +++--- fs/nfs/direct.c | 4 +- fs/nfs/file.c | 18 +- fs/nfs/inode.c | 20 +- fs/nfs/nfs4_fs.h | 10 +- fs/nfs/nfs4proc.c | 70 ++-- fs/nfs/nfs4state.c | 12 +- fs/nfs/pagelist.c | 4 +- fs/nfs/read.c | 8 +- fs/nfs/super.c | 16 +- fs/nfs/write.c | 22 +- fs/nfsd/nfs4recover.c | 52 ++-- fs/nilfs2/file.c | 12 +- fs/nilfs2/inode.c | 10 +- fs/nilfs2/namei.c | 7 +- fs/nilfs2/nilfs.h | 4 +- fs/ntfs/dir.c | 10 +- fs/ntfs/file.c | 13 +- fs/ntfs/inode.c | 10 +- fs/ocfs2/acl.c | 4 +- fs/ocfs2/acl.h | 2 +- fs/ocfs2/aops.c | 10 +- fs/ocfs2/file.c | 41 ++- fs/ocfs2/file.h | 2 +- fs/ocfs2/namei.c | 1 + fs/ocfs2/refcounttree.c | 49 +--- fs/open.c | 2 +- fs/proc/base.c | 6 +- fs/proc/proc_sysctl.c | 4 +- fs/read_write.c | 44 +++- fs/reiserfs/dir.c | 13 +- fs/reiserfs/file.c | 10 +- fs/reiserfs/inode.c | 8 +- fs/reiserfs/namei.c | 4 +- fs/reiserfs/super.c | 1 + fs/reiserfs/xattr.c | 25 +- fs/squashfs/namei.c | 10 +- fs/super.c | 176 +++++++++- fs/sync.c | 25 +-- fs/sysfs/inode.c | 6 +- fs/sysfs/sysfs.h | 2 +- fs/ubifs/file.c | 21 +- fs/ubifs/ubifs.h | 2 +- fs/udf/file.c | 2 +- fs/ufs/namei.c | 2 - fs/xfs/linux-2.6/xfs_acl.c | 4 +- fs/xfs/linux-2.6/xfs_aops.c | 3 + fs/xfs/linux-2.6/xfs_file.c | 17 +- fs/xfs/linux-2.6/xfs_super.c | 26 +- fs/xfs/linux-2.6/xfs_sync.c | 71 ++--- fs/xfs/linux-2.6/xfs_sync.h | 5 +- fs/xfs/xfs_acl.h | 2 +- include/linux/anon_inodes.h | 2 + include/linux/atomic.h | 26 ++ include/linux/binfmts.h | 1 + include/linux/dcache.h | 8 +- include/linux/ext3_fs.h | 2 +- include/linux/fb.h | 3 +- include/linux/fs.h | 100 ++++-- include/linux/generic_acl.h | 2 +- include/linux/mm.h | 39 +--- include/linux/mnt_namespace.h | 1 - include/linux/namei.h | 5 +- include/linux/nfs_fs.h | 6 +- include/linux/nsproxy.h | 1 + include/linux/reiserfs_xattr.h | 4 +- include/linux/rwsem.h | 10 - include/linux/security.h | 9 +- include/linux/seq_file.h | 1 + include/linux/shrinker.h | 42 +++ include/trace/events/vmscan.h | 77 +++++ ipc/shm.c | 4 +- kernel/cgroup.c | 3 +- kernel/fork.c | 1 + kernel/nsproxy.c | 4 +- kernel/rwsem.c | 16 - mm/filemap.c | 3 - mm/madvise.c | 2 +- mm/rmap.c | 1 - mm/swapfile.c | 29 +-- mm/truncate.c | 3 +- mm/vmscan.c | 71 +++- net/sunrpc/clnt.c | 11 +- net/unix/af_unix.c | 38 +-- security/capability.c | 2 +- security/security.c | 9 +- security/selinux/avc.c | 2 +- security/selinux/hooks.c | 3 +- security/smack/smack_lsm.c | 5 +- security/tomoyo/realpath.c | 2 +- 235 files changed, 2518 insertions(+), 1948 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html