aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/sysfs/dir.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index 837073dbadf4..5da8da806660 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -756,24 +756,19 @@ static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry,
756 struct nameidata *nd) 756 struct nameidata *nd)
757{ 757{
758 struct dentry *ret = NULL; 758 struct dentry *ret = NULL;
759 struct sysfs_dirent * parent_sd = dentry->d_parent->d_fsdata; 759 struct sysfs_dirent *parent_sd = dentry->d_parent->d_fsdata;
760 struct sysfs_dirent * sd; 760 struct sysfs_dirent *sd;
761 struct bin_attribute *bin_attr; 761 struct bin_attribute *bin_attr;
762 struct inode *inode; 762 struct inode *inode;
763 int found = 0;
764 763
765 mutex_lock(&sysfs_mutex); 764 mutex_lock(&sysfs_mutex);
766 765
767 for (sd = parent_sd->s_children; sd; sd = sd->s_sibling) { 766 for (sd = parent_sd->s_children; sd; sd = sd->s_sibling)
768 if (sysfs_type(sd) && 767 if (sysfs_type(sd) && !strcmp(sd->s_name, dentry->d_name.name))
769 !strcmp(sd->s_name, dentry->d_name.name)) {
770 found = 1;
771 break; 768 break;
772 }
773 }
774 769
775 /* no such entry */ 770 /* no such entry */
776 if (!found) 771 if (!sd)
777 goto out_unlock; 772 goto out_unlock;
778 773
779 /* attach dentry and inode */ 774 /* attach dentry and inode */