From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 12 Aug 2018 23:52:13 +0100 From: Al Viro To: Linus Torvalds Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [git pull] Dealing with icache races around mkdir and object creation in general Message-ID: <20180812225213.GN6515@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: * NFS mkdir/open_by_handle race fix * analogous solution for FUSE, replacing the one currently in mainline * new primitive to be used when discarding halfway set up inodes on failed object creation; gives sane warranties re icache lookups not returning such doomed by still not freed inodes. A bunch of filesystems switched to that animal. * Miklos' fix for last cycle regression in iget5_locked(); -stable will need a slightly different variant, unfortunately. * misc bits and pieces around things icache-related (in adfs and jfs). The following changes since commit 877f919e192a09e77962a13d7165783027dee5fd: proc: add proc_seq_release (2018-06-27 20:44:38 -0400) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.mkdir for you to fetch changes up to c7b15a8657da7f8d11269c7cc3d8beef10d26b43: jfs: don't bother with make_bad_inode() in ialloc() (2018-08-03 16:03:33 -0400) ---------------------------------------------------------------- Al Viro (11): nfs_instantiate(): prevent multiple aliases for directory inode kill d_instantiate_no_diralias() new primitive: discard_new_inode() btrfs: switch to discard_new_inode() ufs: switch to discard_new_inode() udf: switch to discard_new_inode() ext2: make sure that partially set up inodes won't be returned by ext2_iget() jfs: switch to discard_new_inode() new helper: inode_fake_hash() adfs: don't put inodes into icache jfs: don't bother with make_bad_inode() in ialloc() Miklos Szeredi (1): vfs: don't evict uninitialized inode fs/adfs/inode.c | 2 +- fs/adfs/super.c | 1 + fs/btrfs/inode.c | 106 ++++++++++++++++++------------------------------- fs/dcache.c | 29 +------------- fs/ext2/ialloc.c | 3 +- fs/ext2/namei.c | 9 ++--- fs/fuse/dir.c | 15 +++++-- fs/hfs/inode.c | 2 +- fs/inode.c | 53 ++++++++++++++++++++++--- fs/jfs/jfs_imap.c | 8 +--- fs/jfs/jfs_inode.c | 10 ++--- fs/jfs/namei.c | 12 ++---- fs/jfs/super.c | 2 +- fs/nfs/dir.c | 9 +++-- fs/udf/namei.c | 12 ++---- fs/ufs/ialloc.c | 3 +- fs/ufs/namei.c | 9 ++--- fs/xfs/xfs_iops.c | 2 +- include/linux/dcache.h | 1 - include/linux/fs.h | 17 +++++++- 20 files changed, 146 insertions(+), 159 deletions(-)