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); |
