aboutsummaryrefslogtreecommitdiffstats
path: root/fs/sysfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/sysfs')
-rw-r--r--fs/sysfs/dir.c4
-rw-r--r--fs/sysfs/mount.c2
-rw-r--r--fs/sysfs/symlink.c7
-rw-r--r--fs/sysfs/sysfs.h1
4 files changed, 5 insertions, 9 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index 739dda176b43..7f4abe176701 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -737,10 +737,8 @@ int sysfs_create_dir(struct kobject * kobj)
737 737
738 if (kobj->parent) 738 if (kobj->parent)
739 parent_sd = kobj->parent->sd; 739 parent_sd = kobj->parent->sd;
740 else if (sysfs_mount && sysfs_mount->mnt_sb)
741 parent_sd = sysfs_mount->mnt_sb->s_root->d_fsdata;
742 else 740 else
743 return -EFAULT; 741 parent_sd = &sysfs_root;
744 742
745 error = create_dir(kobj, parent_sd, kobject_name(kobj), &sd); 743 error = create_dir(kobj, parent_sd, kobject_name(kobj), &sd);
746 if (!error) 744 if (!error)
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c
index ac7625631fcf..8989cbb51a39 100644
--- a/fs/sysfs/mount.c
+++ b/fs/sysfs/mount.c
@@ -14,7 +14,7 @@
14/* Random magic number */ 14/* Random magic number */
15#define SYSFS_MAGIC 0x62656572 15#define SYSFS_MAGIC 0x62656572
16 16
17struct vfsmount *sysfs_mount; 17static struct vfsmount *sysfs_mount;
18struct super_block * sysfs_sb = NULL; 18struct super_block * sysfs_sb = NULL;
19struct kmem_cache *sysfs_dir_cachep; 19struct kmem_cache *sysfs_dir_cachep;
20 20
diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
index a6b13f12b0e7..8ad38bccc0e4 100644
--- a/fs/sysfs/symlink.c
+++ b/fs/sysfs/symlink.c
@@ -60,10 +60,9 @@ int sysfs_create_link(struct kobject * kobj, struct kobject * target, const char
60 60
61 BUG_ON(!name); 61 BUG_ON(!name);
62 62
63 if (!kobj) { 63 if (!kobj)
64 if (sysfs_mount && sysfs_mount->mnt_sb) 64 parent_sd = &sysfs_root;
65 parent_sd = sysfs_mount->mnt_sb->s_root->d_fsdata; 65 else
66 } else
67 parent_sd = kobj->sd; 66 parent_sd = kobj->sd;
68 67
69 error = -EFAULT; 68 error = -EFAULT;
diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h
index 8a0aea1ab86d..77253aabc4af 100644
--- a/fs/sysfs/sysfs.h
+++ b/fs/sysfs/sysfs.h
@@ -51,7 +51,6 @@ struct sysfs_addrm_cxt {
51 int cnt; 51 int cnt;
52}; 52};
53 53
54extern struct vfsmount * sysfs_mount;
55extern struct sysfs_dirent sysfs_root; 54extern struct sysfs_dirent sysfs_root;
56extern struct kmem_cache *sysfs_dir_cachep; 55extern struct kmem_cache *sysfs_dir_cachep;
57 56