aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/sysfs/dir.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index 6ee76a82eb38..48a3ed4f4537 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -332,21 +332,6 @@ struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode, int type)
332 return NULL; 332 return NULL;
333} 333}
334 334
335/**
336 * sysfs_attach_dentry - associate sysfs_dirent with dentry
337 * @sd: target sysfs_dirent
338 * @dentry: dentry to associate
339 *
340 * LOCKING:
341 * mutex_lock(sysfs_mutex)
342 */
343static void sysfs_attach_dentry(struct sysfs_dirent *sd, struct dentry *dentry)
344{
345 dentry->d_op = &sysfs_dentry_ops;
346 dentry->d_fsdata = sysfs_get(sd);
347 d_rehash(dentry);
348}
349
350static int sysfs_ilookup_test(struct inode *inode, void *arg) 335static int sysfs_ilookup_test(struct inode *inode, void *arg)
351{ 336{
352 struct sysfs_dirent *sd = arg; 337 struct sysfs_dirent *sd = arg;
@@ -696,8 +681,11 @@ static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry,
696 goto out_unlock; 681 goto out_unlock;
697 } 682 }
698 683
684 /* instantiate and hash dentry */
685 dentry->d_op = &sysfs_dentry_ops;
686 dentry->d_fsdata = sysfs_get(sd);
699 d_instantiate(dentry, inode); 687 d_instantiate(dentry, inode);
700 sysfs_attach_dentry(sd, dentry); 688 d_rehash(dentry);
701 689
702 out_unlock: 690 out_unlock:
703 mutex_unlock(&sysfs_mutex); 691 mutex_unlock(&sysfs_mutex);