Re: [patch 5/9] fs: remove unneeded DCACHE_UNHASHED tricks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 17, 2009 at 02:56:30PM -0800, Andrew Morton wrote:
> From: Nick Piggin <npiggin@xxxxxxx>
> 
> Filesystems outside the regular namespace do not have to clear
> DCACHE_UNHASHED in order to have a working /proc/$pid/fd/XXX.  Nothing in
> proc prevents the fd link from being used if its dentry is not in the
> hash.
> 
> Also, it does not get put into the dcache hash if DCACHE_UNHASHED is
> clear; that depends on the filesystem calling d_add or d_rehash.
> 
> So delete the misleading comments and needless code.

Thanks for carrying this for me Andrew, I'm sorry it slipped my mind
that you had it in your tree -- it just requires a small update to fix
the /proc/pid/fd link path name for anonfs.

--
fs: anon_inodes implement dname

Add a d_dname method for anon_inodes filesystem, the same way pipefs and sockfs
pseudo filesystems. This allows us to remove the DCACHE_UNHASHED hack from
anon_inodes.c (see next patch).

Signed-off-by: Nick Piggin <npiggin@xxxxxxx>
---
 fs/anon_inodes.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

Index: linux-2.6/fs/anon_inodes.c
===================================================================
--- linux-2.6.orig/fs/anon_inodes.c
+++ linux-2.6/fs/anon_inodes.c
@@ -45,6 +45,15 @@ static int anon_inodefs_delete_dentry(st
 	return 1;
 }
 
+/*
+ * anon_inodefs_dname() is called from d_path().
+ */
+static char *anon_inodefs_dname(struct dentry *dentry, char *buffer, int buflen)
+{
+	return dynamic_dname(dentry, buffer, buflen, "anon_inode:%s",
+				dentry->d_name.name, dentry->d_inode->i_ino);
+}
+
 static struct file_system_type anon_inode_fs_type = {
 	.name		= "anon_inodefs",
 	.get_sb		= anon_inodefs_get_sb,
@@ -52,6 +61,7 @@ static struct file_system_type anon_inod
 };
 static const struct dentry_operations anon_inodefs_dentry_operations = {
 	.d_delete	= anon_inodefs_delete_dentry,
+	.d_dname	= anon_inodefs_dname,
 };
 
 /*
--
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

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux