This series allows clean implementation of atomic lookup+(create)+open and create+open operations that previously were done via ->lookup and ->create using open intents. Testing and review is welcome, but at this stage mainly I'd like to hear opinions on the overall design of the new interfaces. This is based on the vfs fixes patchset posted previously on -fsdevel. git tree is here: git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git atomic-open Thanks, Miklos --- Miklos Szeredi (25): vfs: split do_lookup() vfs: reorganize do_last() vfs: split __dentry_open() vfs: add i_op->atomic_open() vfs: add filesystem flags for atomic_open vfs: add i_op->atomic_create() nfs: implement i_op->atomic_open() nfs: clean up ->create in nfs_rpc_ops nfs: remove nfs4 specific create function nfs: don't use nd->intent.open.flags nfs: don't use intents for checking atomic open fuse: implement i_op->atomic_create() cifs: implement i_op->atomic_open() and i_op->atomic_create() ceph: remove unused arg from ceph_lookup_open() ceph: implement i_op->atomic_open() and i_op->atomic_create() 9p: implement i_op->atomic_create() vfs: remove open intents from nameidata vfs: only retry last component if opening stale dentry vfs: remove nameidata argument from vfs_create vfs: move O_DIRECT check to common code gfs2: use i_op->atomic_create() nfs: use i_op->atomic_create() vfs: remove nameidata argument from i_op->create() vfs: optionally skip lookup on exclusive create vfs: remove nameidata from lookup --- Documentation/filesystems/Locking | 3 +- Documentation/filesystems/vfs.txt | 2 +- fs/9p/v9fs.h | 3 +- fs/9p/vfs_inode.c | 36 +-- fs/9p/vfs_inode_dotl.c | 36 +- fs/adfs/dir.c | 2 +- fs/affs/affs.h | 5 +- fs/affs/namei.c | 4 +- fs/afs/dir.c | 12 +- fs/afs/mntpt.c | 7 +- fs/autofs4/root.c | 4 +- fs/bad_inode.c | 7 +- fs/befs/linuxvfs.c | 4 +- fs/bfs/dir.c | 6 +- fs/btrfs/inode.c | 6 +- fs/cachefiles/namei.c | 2 +- fs/ceph/dir.c | 38 +-- fs/ceph/file.c | 23 +- fs/ceph/super.c | 2 +- fs/ceph/super.h | 6 +- fs/cifs/cifsfs.c | 24 ++- fs/cifs/cifsfs.h | 8 +- fs/cifs/dir.c | 175 +++++------ fs/coda/dir.c | 8 +- fs/configfs/dir.c | 4 +- fs/cramfs/inode.c | 2 +- fs/ecryptfs/inode.c | 9 +- fs/efs/efs.h | 2 +- fs/efs/namei.c | 3 +- fs/exofs/namei.c | 6 +- fs/ext2/namei.c | 4 +- fs/ext3/namei.c | 5 +- fs/ext4/namei.c | 5 +- fs/fat/namei_msdos.c | 6 +- fs/fat/namei_vfat.c | 6 +- fs/freevxfs/vxfs_lookup.c | 5 +- fs/fuse/dir.c | 60 ++-- fs/gfs2/inode.c | 24 +- fs/hfs/dir.c | 6 +- fs/hfs/inode.c | 3 +- fs/hfsplus/dir.c | 7 +- fs/hfsplus/inode.c | 2 +- fs/hostfs/hostfs_kern.c | 6 +- fs/hpfs/dir.c | 2 +- fs/hpfs/hpfs_fn.h | 2 +- fs/hpfs/namei.c | 2 +- fs/hppfs/hppfs.c | 3 +- fs/hugetlbfs/inode.c | 3 +- fs/internal.h | 9 +- fs/isofs/isofs.h | 2 +- fs/isofs/namei.c | 2 +- fs/jffs2/dir.c | 11 +- fs/jfs/namei.c | 6 +- fs/libfs.c | 2 +- fs/logfs/dir.c | 6 +- fs/minix/namei.c | 5 +- fs/namei.c | 636 ++++++++++++++++++++++++++++--------- fs/ncpfs/dir.c | 9 +- fs/nfs/dir.c | 278 +++++++---------- fs/nfs/file.c | 2 +- fs/nfs/nfs3proc.c | 2 +- fs/nfs/nfs4proc.c | 48 --- fs/nfs/proc.c | 2 +- fs/nfs/super.c | 9 +- fs/nfsd/vfs.c | 4 +- fs/nilfs2/namei.c | 6 +- fs/ntfs/namei.c | 4 +- fs/ocfs2/dlmfs/dlmfs.c | 3 +- fs/ocfs2/namei.c | 6 +- fs/omfs/dir.c | 6 +- fs/open.c | 113 +++---- fs/openpromfs/inode.c | 5 +- fs/proc/base.c | 22 +- fs/proc/generic.c | 3 +- fs/proc/internal.h | 4 +- fs/proc/namespaces.c | 2 +- fs/proc/proc_net.c | 2 +- fs/proc/proc_sysctl.c | 3 +- fs/proc/root.c | 9 +- fs/qnx4/namei.c | 2 +- fs/qnx4/qnx4.h | 2 +- fs/ramfs/inode.c | 2 +- fs/reiserfs/namei.c | 7 +- fs/romfs/super.c | 3 +- fs/squashfs/namei.c | 3 +- fs/sysfs/dir.c | 3 +- fs/sysv/namei.c | 4 +- fs/ubifs/dir.c | 6 +- fs/udf/namei.c | 6 +- fs/ufs/namei.c | 5 +- fs/xfs/xfs_iops.c | 9 +- include/linux/errno.h | 1 + include/linux/fs.h | 21 +- include/linux/namei.h | 11 - include/linux/nfs_xdr.h | 2 +- ipc/mqueue.c | 5 +- kernel/cgroup.c | 4 +- mm/shmem.c | 3 +- 98 files changed, 1031 insertions(+), 889 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