Merge branch 'work.dcache2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 20 Jul 2019 16:15:51 +0000 (09:15 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 20 Jul 2019 16:15:51 +0000 (09:15 -0700)
Pull dcache and mountpoint updates from Al Viro:
 "Saner handling of refcounts to mountpoints.

  Transfer the counting reference from struct mount ->mnt_mountpoint
  over to struct mountpoint ->m_dentry. That allows us to get rid of the
  convoluted games with ordering of mount shutdowns.

  The cost is in teaching shrink_dcache_{parent,for_umount} to cope with
  mixed-filesystem shrink lists, which we'll also need for the Slab
  Movable Objects patchset"

* 'work.dcache2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  switch the remnants of releasing the mountpoint away from fs_pin
  get rid of detach_mnt()
  make struct mountpoint bear the dentry reference to mountpoint, not struct mount
  Teach shrink_dcache_parent() to cope with mixed-filesystem shrink lists
  fs/namespace.c: shift put_mountpoint() to callers of unhash_mnt()
  __detach_mounts(): lookup_mountpoint() can't return ERR_PTR() anymore
  nfs: dget_parent() never returns NULL
  ceph: don't open-code the check for dead lockref

1  2 
fs/ceph/dir.c
fs/dcache.c
fs/internal.h
fs/namespace.c
fs/nfs/super.c

diff --cc fs/ceph/dir.c
Simple merge
diff --cc fs/dcache.c
Simple merge
diff --cc fs/internal.h
index ff5173212803b2e6a57335e2e2216e422af746e6,dc317abe31b5e4adc499e653eabb942def3fb30c..315fcd8d237ccb7264aa06f15e7d6c977ab52bf5
@@@ -156,7 -156,8 +156,9 @@@ extern int d_set_mounted(struct dentry 
  extern long prune_dcache_sb(struct super_block *sb, struct shrink_control *sc);
  extern struct dentry *d_alloc_cursor(struct dentry *);
  extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *);
 +extern char *simple_dname(struct dentry *, char *, int);
+ extern void dput_to_list(struct dentry *, struct list_head *);
+ extern void shrink_dentry_list(struct list_head *);
  
  /*
   * read_write.c
diff --cc fs/namespace.c
Simple merge
diff --cc fs/nfs/super.c
Simple merge