[git pull] Dealing with icache races around mkdir and object creation in general

From: Al Viro
Date: Sun Aug 12 2018 - 18:52:21 EST


* 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(-)