sysfs, kernfs: introduce kernfs_setattr()
Introduce kernfs setattr interface - kernfs_setattr(). sysfs_sd_setattr() is renamed to __kernfs_setattr() and kernfs_setattr() is a simple wrapper around it with sysfs_mutex locking. sysfs_chmod_file() is updated to get an explicit ref on kobj->sd and then invoke kernfs_setattr() so that it doesn't have to use internal interface. This patch doesn't introduce any behavior differences. v2: Dummy implementation for !CONFIG_SYSFS updated to return -ENOSYS. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
890ece160c
commit
5d60418e54
@ -10,6 +10,9 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
struct file;
|
||||
struct iattr;
|
||||
|
||||
struct sysfs_dirent;
|
||||
|
||||
#ifdef CONFIG_SYSFS
|
||||
@ -22,6 +25,7 @@ int kernfs_remove_by_name_ns(struct sysfs_dirent *parent, const char *name,
|
||||
const void *ns);
|
||||
int kernfs_rename_ns(struct sysfs_dirent *sd, struct sysfs_dirent *new_parent,
|
||||
const char *new_name, const void *new_ns);
|
||||
int kernfs_setattr(struct sysfs_dirent *sd, const struct iattr *iattr);
|
||||
|
||||
#else /* CONFIG_SYSFS */
|
||||
|
||||
@ -41,6 +45,10 @@ static inline int kernfs_rename_ns(struct sysfs_dirent *sd,
|
||||
const char *new_name, const void *new_ns)
|
||||
{ return -ENOSYS; }
|
||||
|
||||
static inline int kernfs_setattr(struct sysfs_dirent *sd,
|
||||
const struct iattr *iattr)
|
||||
{ return -ENOSYS; }
|
||||
|
||||
#endif /* CONFIG_SYSFS */
|
||||
|
||||
static inline int kernfs_remove_by_name(struct sysfs_dirent *parent,
|
||||
|
||||
Reference in New Issue
Block a user