diff options
author | Tejun Heo <tj@kernel.org> | 2013-09-11 23:19:13 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-09-26 18:33:18 -0400 |
commit | 388975cccaaf11abd47525f664c76891c440481a (patch) | |
tree | 597308874997808e7621ab4a56f0b1fd201e8639 /fs/sysfs | |
parent | cb26a311578e67769e92a39a0a63476533cb7e12 (diff) |
sysfs: clean up sysfs_get_dirent()
The pre-existing sysfs interfaces which take explicit namespace
argument are weird in that they place the optional @ns in front of
@name which is contrary to the established convention. For example,
we end up forcing vast majority of sysfs_get_dirent() users to do
sysfs_get_dirent(parent, NULL, name), which is silly and error-prone
especially as @ns and @name may be interchanged without causing
compilation warning.
This renames sysfs_get_dirent() to sysfs_get_dirent_ns() and swap the
positions of @name and @ns, and sysfs_get_dirent() is now a wrapper
around sysfs_get_dirent_ns(). This makes confusions a lot less
likely.
There are other interfaces which take @ns before @name. They'll be
updated by following patches.
This patch doesn't introduce any functional changes.
v2: EXPORT_SYMBOL_GPL() wasn't updated leading to undefined symbol
error on module builds. Reported by build test robot. Fixed.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Kay Sievers <kay@vrfy.org>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/sysfs')
-rw-r--r-- | fs/sysfs/dir.c | 11 | ||||
-rw-r--r-- | fs/sysfs/file.c | 4 | ||||
-rw-r--r-- | fs/sysfs/group.c | 10 | ||||
-rw-r--r-- | fs/sysfs/symlink.c | 2 | ||||
-rw-r--r-- | fs/sysfs/sysfs.h | 3 |
5 files changed, 14 insertions, 16 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 1dfb4aaf9446..fee19d16e4a2 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
@@ -630,9 +630,10 @@ struct sysfs_dirent *sysfs_find_dirent(struct sysfs_dirent *parent_sd, | |||
630 | } | 630 | } |
631 | 631 | ||
632 | /** | 632 | /** |
633 | * sysfs_get_dirent - find and get sysfs_dirent with the given name | 633 | * sysfs_get_dirent_ns - find and get sysfs_dirent with the given name |
634 | * @parent_sd: sysfs_dirent to search under | 634 | * @parent_sd: sysfs_dirent to search under |
635 | * @name: name to look for | 635 | * @name: name to look for |
636 | * @ns: the namespace tag to use | ||
636 | * | 637 | * |
637 | * Look for sysfs_dirent with name @name under @parent_sd and get | 638 | * Look for sysfs_dirent with name @name under @parent_sd and get |
638 | * it if found. | 639 | * it if found. |
@@ -643,9 +644,9 @@ struct sysfs_dirent *sysfs_find_dirent(struct sysfs_dirent *parent_sd, | |||
643 | * RETURNS: | 644 | * RETURNS: |
644 | * Pointer to sysfs_dirent if found, NULL if not. | 645 | * Pointer to sysfs_dirent if found, NULL if not. |
645 | */ | 646 | */ |
646 | struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd, | 647 | struct sysfs_dirent *sysfs_get_dirent_ns(struct sysfs_dirent *parent_sd, |
647 | const void *ns, | 648 | const unsigned char *name, |
648 | const unsigned char *name) | 649 | const void *ns) |
649 | { | 650 | { |
650 | struct sysfs_dirent *sd; | 651 | struct sysfs_dirent *sd; |
651 | 652 | ||
@@ -656,7 +657,7 @@ struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd, | |||
656 | 657 | ||
657 | return sd; | 658 | return sd; |
658 | } | 659 | } |
659 | EXPORT_SYMBOL_GPL(sysfs_get_dirent); | 660 | EXPORT_SYMBOL_GPL(sysfs_get_dirent_ns); |
660 | 661 | ||
661 | static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd, | 662 | static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd, |
662 | const void *ns, const char *name, struct sysfs_dirent **p_sd) | 663 | const void *ns, const char *name, struct sysfs_dirent **p_sd) |
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c index e784340f1599..0f3214a70985 100644 --- a/fs/sysfs/file.c +++ b/fs/sysfs/file.c | |||
@@ -563,7 +563,7 @@ int sysfs_add_file_to_group(struct kobject *kobj, | |||
563 | int error; | 563 | int error; |
564 | 564 | ||
565 | if (group) | 565 | if (group) |
566 | dir_sd = sysfs_get_dirent(kobj->sd, NULL, group); | 566 | dir_sd = sysfs_get_dirent(kobj->sd, group); |
567 | else | 567 | else |
568 | dir_sd = sysfs_get(kobj->sd); | 568 | dir_sd = sysfs_get(kobj->sd); |
569 | 569 | ||
@@ -645,7 +645,7 @@ void sysfs_remove_file_from_group(struct kobject *kobj, | |||
645 | struct sysfs_dirent *dir_sd; | 645 | struct sysfs_dirent *dir_sd; |
646 | 646 | ||
647 | if (group) | 647 | if (group) |
648 | dir_sd = sysfs_get_dirent(kobj->sd, NULL, group); | 648 | dir_sd = sysfs_get_dirent(kobj->sd, group); |
649 | else | 649 | else |
650 | dir_sd = sysfs_get(kobj->sd); | 650 | dir_sd = sysfs_get(kobj->sd); |
651 | if (dir_sd) { | 651 | if (dir_sd) { |
diff --git a/fs/sysfs/group.c b/fs/sysfs/group.c index 25c78f23dae8..21102158ca33 100644 --- a/fs/sysfs/group.c +++ b/fs/sysfs/group.c | |||
@@ -207,7 +207,7 @@ void sysfs_remove_group(struct kobject *kobj, | |||
207 | struct sysfs_dirent *sd; | 207 | struct sysfs_dirent *sd; |
208 | 208 | ||
209 | if (grp->name) { | 209 | if (grp->name) { |
210 | sd = sysfs_get_dirent(dir_sd, NULL, grp->name); | 210 | sd = sysfs_get_dirent(dir_sd, grp->name); |
211 | if (!sd) { | 211 | if (!sd) { |
212 | WARN(!sd, KERN_WARNING | 212 | WARN(!sd, KERN_WARNING |
213 | "sysfs group %p not found for kobject '%s'\n", | 213 | "sysfs group %p not found for kobject '%s'\n", |
@@ -262,7 +262,7 @@ int sysfs_merge_group(struct kobject *kobj, | |||
262 | struct attribute *const *attr; | 262 | struct attribute *const *attr; |
263 | int i; | 263 | int i; |
264 | 264 | ||
265 | dir_sd = sysfs_get_dirent(kobj->sd, NULL, grp->name); | 265 | dir_sd = sysfs_get_dirent(kobj->sd, grp->name); |
266 | if (!dir_sd) | 266 | if (!dir_sd) |
267 | return -ENOENT; | 267 | return -ENOENT; |
268 | 268 | ||
@@ -289,7 +289,7 @@ void sysfs_unmerge_group(struct kobject *kobj, | |||
289 | struct sysfs_dirent *dir_sd; | 289 | struct sysfs_dirent *dir_sd; |
290 | struct attribute *const *attr; | 290 | struct attribute *const *attr; |
291 | 291 | ||
292 | dir_sd = sysfs_get_dirent(kobj->sd, NULL, grp->name); | 292 | dir_sd = sysfs_get_dirent(kobj->sd, grp->name); |
293 | if (dir_sd) { | 293 | if (dir_sd) { |
294 | for (attr = grp->attrs; *attr; ++attr) | 294 | for (attr = grp->attrs; *attr; ++attr) |
295 | sysfs_hash_and_remove(dir_sd, NULL, (*attr)->name); | 295 | sysfs_hash_and_remove(dir_sd, NULL, (*attr)->name); |
@@ -311,7 +311,7 @@ int sysfs_add_link_to_group(struct kobject *kobj, const char *group_name, | |||
311 | struct sysfs_dirent *dir_sd; | 311 | struct sysfs_dirent *dir_sd; |
312 | int error = 0; | 312 | int error = 0; |
313 | 313 | ||
314 | dir_sd = sysfs_get_dirent(kobj->sd, NULL, group_name); | 314 | dir_sd = sysfs_get_dirent(kobj->sd, group_name); |
315 | if (!dir_sd) | 315 | if (!dir_sd) |
316 | return -ENOENT; | 316 | return -ENOENT; |
317 | 317 | ||
@@ -333,7 +333,7 @@ void sysfs_remove_link_from_group(struct kobject *kobj, const char *group_name, | |||
333 | { | 333 | { |
334 | struct sysfs_dirent *dir_sd; | 334 | struct sysfs_dirent *dir_sd; |
335 | 335 | ||
336 | dir_sd = sysfs_get_dirent(kobj->sd, NULL, group_name); | 336 | dir_sd = sysfs_get_dirent(kobj->sd, group_name); |
337 | if (dir_sd) { | 337 | if (dir_sd) { |
338 | sysfs_hash_and_remove(dir_sd, NULL, link_name); | 338 | sysfs_hash_and_remove(dir_sd, NULL, link_name); |
339 | sysfs_put(dir_sd); | 339 | sysfs_put(dir_sd); |
diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c index 7d981ce2e87f..c96b31a16485 100644 --- a/fs/sysfs/symlink.c +++ b/fs/sysfs/symlink.c | |||
@@ -191,7 +191,7 @@ int sysfs_rename_link_ns(struct kobject *kobj, struct kobject *targ, | |||
191 | old_ns = targ->sd->s_ns; | 191 | old_ns = targ->sd->s_ns; |
192 | 192 | ||
193 | result = -ENOENT; | 193 | result = -ENOENT; |
194 | sd = sysfs_get_dirent(parent_sd, old_ns, old); | 194 | sd = sysfs_get_dirent_ns(parent_sd, old, old_ns); |
195 | if (!sd) | 195 | if (!sd) |
196 | goto out; | 196 | goto out; |
197 | 197 | ||
diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h index 7664d1b3d594..6faacafda777 100644 --- a/fs/sysfs/sysfs.h +++ b/fs/sysfs/sysfs.h | |||
@@ -164,9 +164,6 @@ void sysfs_addrm_finish(struct sysfs_addrm_cxt *acxt); | |||
164 | struct sysfs_dirent *sysfs_find_dirent(struct sysfs_dirent *parent_sd, | 164 | struct sysfs_dirent *sysfs_find_dirent(struct sysfs_dirent *parent_sd, |
165 | const void *ns, | 165 | const void *ns, |
166 | const unsigned char *name); | 166 | const unsigned char *name); |
167 | struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd, | ||
168 | const void *ns, | ||
169 | const unsigned char *name); | ||
170 | struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode, int type); | 167 | struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode, int type); |
171 | 168 | ||
172 | void release_sysfs_dirent(struct sysfs_dirent *sd); | 169 | void release_sysfs_dirent(struct sysfs_dirent *sd); |