ia64: perfmon: add d_dname method
authorMiklos Szeredi <mszeredi@suse.cz>
Tue, 10 Aug 2010 09:41:37 +0000 (11:41 +0200)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 11 Aug 2010 04:28:21 +0000 (00:28 -0400)
Switch ia64/perfmon to using the d_dname() instead of relying on
__d_path() to prepend the name of the root dentry to the path.

CC: Tony Luck <tony.luck@intel.com>
CC: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/ia64/kernel/perfmon.c

index 7443290..cce050e 100644 (file)
@@ -2191,8 +2191,15 @@ pfmfs_delete_dentry(struct dentry *dentry)
        return 1;
 }
 
+static char *pfmfs_dname(struct dentry *dentry, char *buffer, int buflen)
+{
+       return dynamic_dname(dentry, buffer, buflen, "pfm:[%lu]",
+                            dentry->d_inode->i_ino);
+}
+
 static const struct dentry_operations pfmfs_dentry_operations = {
        .d_delete = pfmfs_delete_dentry,
+       .d_dname = pfmfs_dname,
 };
 
 
@@ -2202,8 +2209,7 @@ pfm_alloc_file(pfm_context_t *ctx)
        struct file *file;
        struct inode *inode;
        struct path path;
-       char name[32];
-       struct qstr this;
+       struct qstr this = { .name = "" };
 
        /*
         * allocate a new inode
@@ -2218,11 +2224,6 @@ pfm_alloc_file(pfm_context_t *ctx)
        inode->i_uid  = current_fsuid();
        inode->i_gid  = current_fsgid();
 
-       sprintf(name, "[%lu]", inode->i_ino);
-       this.name = name;
-       this.len  = strlen(name);
-       this.hash = inode->i_ino;
-
        /*
         * allocate a new dcache entry
         */