linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/19] Do not dentry_unhash in VFS (v3)
@ 2011-05-24 20:06 Sage Weil
  2011-05-24 20:06 ` [PATCH 01/19] vfs: dentry_unhash immediately prior to rmdir Sage Weil
                   ` (19 more replies)
  0 siblings, 20 replies; 27+ messages in thread
From: Sage Weil @ 2011-05-24 20:06 UTC (permalink / raw)
  To: viro; +Cc: linux-fsdevel, hch, Sage Weil

Hi Al,

Here's the latest version of my dentry_unhash series, with Christoph's 
ack on the push-down patches, some additional cleanup he suggested, xfs 
and gfs2 removed from the push-down (at maintainers' request), and acks 
for ocfs2 and exofs.  Is this suitable for this merge window?

The series can also be pulled from git at

        git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git dentry_unhash

Summary:

For the most part the VFS does not hash or unhash dentries outside of 
dcache pruning.  This is left to the file system namespace methods.  The 
only exception is on rmdir and directory rename, where we call 
dentry_unhash() for the benefit of a few file systems that can't handle 
lingering references to the empty and unlinked directory.

This patchset aims to clean this up by pushing the dentry_unhash calls 
into each fs where they can be safely removed on a per-fs basis.  We 
also take this opportunity to finally fix a longstanding bug in 
vfs_rename_dir() which rehashes new_dentry (Miklos' patch, see
        http://marc.info/?l=linux-fsdevel&m=121666695328987&w=2
        http://marc.info/?t=121580579500004&r=1&w=2
).

On a per-fs basis, the dentry_unhash calls can be replaced with 
shrink_dcache_parent (or dropped entirely) if it is safe to do so.  I 
expect that this is safe for most of them.

My hope is that this will move us closer to being able to introduce a 
->d_prune d_op.  Independent of that, however, I think this is a 
worthwhile dcache cleanup.

Thanks!
sage


v3:
 * drop xfs from push-down at Christoph's request
 * rebased against Linus' master
 * fixed Miklos' email address

v2:
 * clean up vfs_rmdir flow
 * clean up vfs_rename_dir flow
 * clean up vfs_rename_other flow to match vfs_rename_dir
 * drop gfs2 from push-down at Steve's request


Miklos Szeredi (1):
  vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems

Sage Weil (18):
  vfs: dentry_unhash immediately prior to rmdir
  vfs: remove dget() from dentry_unhash()
  vfs: push dentry_unhash on rmdir into file systems
  vfs: push dentry_unhash on rename_dir into file systems
  vfs: update dentry_unhash() comment
  libfs: drop unneeded dentry_unhash
  vfs: clean up vfs_rmdir
  vfs: clean up vfs_rename_dir
  vfs: clean up vfs_rename_other
  ceph: remove unnecessary dentry_unhash calls
  btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir
  ext4: remove unnecessary dentry_unhash on rmdir/rename_dir
  ext3: remove unnecessary dentry_unhash on rmdir/rename_dir
  ext2: remove unnecessary dentry_unhash on rmdir/rename_dir
  nfs: remove unnecessary dentry_unhash on rmdir/rename_dir
  exofs: remove unnecessary dentry_unhash on rmdir/rename_dir
  ocfs2: remove unnecessary dentry_unhash on rmdir/rename_dir
  cifs: remove unnecessary dentry_unhash on rmdir/rename_dir

 fs/9p/vfs_inode.c       |    4 ++
 fs/affs/namei.c         |    5 ++
 fs/afs/dir.c            |    5 ++
 fs/autofs4/root.c       |    2 +
 fs/bfs/dir.c            |    3 +
 fs/coda/dir.c           |    5 ++
 fs/configfs/dir.c       |    2 +
 fs/ecryptfs/inode.c     |    5 ++
 fs/fat/namei_msdos.c    |    5 ++
 fs/fat/namei_vfat.c     |    5 ++
 fs/fuse/dir.c           |    6 +++
 fs/hfs/dir.c            |    6 +++
 fs/hfsplus/dir.c        |    8 +++-
 fs/hostfs/hostfs_kern.c |    5 ++
 fs/hpfs/namei.c         |    9 +++-
 fs/jffs2/dir.c          |    5 ++
 fs/jfs/namei.c          |    5 ++
 fs/logfs/dir.c          |    5 ++
 fs/minix/namei.c        |    5 ++
 fs/namei.c              |  108 ++++++++++++++++++++++------------------------
 fs/ncpfs/dir.c          |    5 ++
 fs/nilfs2/namei.c       |    5 ++
 fs/omfs/dir.c           |   11 ++++-
 fs/reiserfs/namei.c     |    5 ++
 fs/reiserfs/xattr.c     |    1 -
 fs/sysv/namei.c         |    5 ++
 fs/ubifs/dir.c          |    5 ++
 fs/udf/namei.c          |    5 ++
 fs/ufs/namei.c          |    5 ++
 29 files changed, 186 insertions(+), 64 deletions(-)


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2011-05-27 19:09 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-24 20:06 [PATCH 00/19] Do not dentry_unhash in VFS (v3) Sage Weil
2011-05-24 20:06 ` [PATCH 01/19] vfs: dentry_unhash immediately prior to rmdir Sage Weil
2011-05-24 20:06 ` [PATCH 02/19] vfs: remove dget() from dentry_unhash() Sage Weil
2011-05-24 20:06 ` [PATCH 03/19] vfs: push dentry_unhash on rmdir into file systems Sage Weil
2011-05-24 20:06 ` [PATCH 04/19] vfs: push dentry_unhash on rename_dir " Sage Weil
2011-05-24 20:06 ` [PATCH 05/19] vfs: update dentry_unhash() comment Sage Weil
2011-05-24 20:06 ` [PATCH 06/19] libfs: drop unneeded dentry_unhash Sage Weil
2011-05-24 20:06 ` [PATCH 07/19] vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems Sage Weil
2011-05-24 20:06 ` [PATCH 08/19] vfs: clean up vfs_rmdir Sage Weil
2011-05-24 20:06 ` [PATCH 09/19] vfs: clean up vfs_rename_dir Sage Weil
2011-05-24 20:06 ` [PATCH 10/19] vfs: clean up vfs_rename_other Sage Weil
2011-05-24 20:06 ` [PATCH 11/19] ceph: remove unnecessary dentry_unhash calls Sage Weil
2011-05-24 20:06 ` [PATCH 12/19] btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir Sage Weil
2011-05-24 20:06 ` [PATCH 13/19] ext4: remove unnecessary dentry_unhash on rmdir/rename_dir Sage Weil
2011-05-24 20:06 ` [PATCH 14/19] ext3: " Sage Weil
2011-05-24 20:38   ` Jan Kara
2011-05-24 23:57     ` Sage Weil
2011-05-25  2:44   ` Yongqiang Yang
2011-05-25  3:44     ` Sage Weil
2011-05-24 20:06 ` [PATCH 15/19] ext2: " Sage Weil
     [not found] ` <1306267582-5347-1-git-send-email-sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org>
2011-05-24 20:06   ` [PATCH 16/19] nfs: " Sage Weil
2011-05-24 20:06 ` [PATCH 17/19] exofs: " Sage Weil
2011-05-24 20:06 ` [PATCH 18/19] ocfs2: " Sage Weil
2011-05-24 20:06 ` [PATCH 19/19] cifs: " Sage Weil
2011-05-27  9:46 ` [PATCH 00/19] Do not dentry_unhash in VFS (v3) Christoph Hellwig
2011-05-27 14:15   ` Jan Kara
2011-05-27 19:11   ` Sage Weil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).