mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
proc: Add proc_mkdir_data()
Add proc_mkdir_data() to allow procfs directories to be created that are annotated at the time of creation with private data rather than doing this post-creation. This means no access is then required to the proc_dir_entry struct to set this. Signed-off-by: David Howells <[email protected]> Acked-by: Mauro Carvalho Chehab <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> cc: Neela Syam Kolli <[email protected]> cc: Jerry Chuang <[email protected]> cc: [email protected] cc: [email protected] cc: [email protected] Signed-off-by: Al Viro <[email protected]>
This commit is contained in:
parent
34db8aaf0f
commit
270b5ac215
6 changed files with 28 additions and 33 deletions
|
|
@ -428,13 +428,17 @@ struct proc_dir_entry *proc_symlink(const char *name,
|
|||
}
|
||||
EXPORT_SYMBOL(proc_symlink);
|
||||
|
||||
struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
|
||||
struct proc_dir_entry *parent)
|
||||
struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode,
|
||||
struct proc_dir_entry *parent, void *data)
|
||||
{
|
||||
struct proc_dir_entry *ent;
|
||||
|
||||
if (mode == 0)
|
||||
mode = S_IRUGO | S_IXUGO;
|
||||
|
||||
ent = __proc_create(&parent, name, S_IFDIR | mode, 2);
|
||||
if (ent) {
|
||||
ent->data = data;
|
||||
if (proc_register(parent, ent) < 0) {
|
||||
kfree(ent);
|
||||
ent = NULL;
|
||||
|
|
@ -442,29 +446,19 @@ struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
|
|||
}
|
||||
return ent;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(proc_mkdir_data);
|
||||
|
||||
struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
|
||||
struct proc_dir_entry *parent)
|
||||
{
|
||||
return proc_mkdir_data(name, mode, parent, NULL);
|
||||
}
|
||||
EXPORT_SYMBOL(proc_mkdir_mode);
|
||||
|
||||
struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name,
|
||||
struct proc_dir_entry *parent)
|
||||
{
|
||||
struct proc_dir_entry *ent;
|
||||
|
||||
ent = __proc_create(&parent, name, S_IFDIR | S_IRUGO | S_IXUGO, 2);
|
||||
if (ent) {
|
||||
ent->data = net;
|
||||
if (proc_register(parent, ent) < 0) {
|
||||
kfree(ent);
|
||||
ent = NULL;
|
||||
}
|
||||
}
|
||||
return ent;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(proc_net_mkdir);
|
||||
|
||||
struct proc_dir_entry *proc_mkdir(const char *name,
|
||||
struct proc_dir_entry *parent)
|
||||
{
|
||||
return proc_mkdir_mode(name, S_IRUGO | S_IXUGO, parent);
|
||||
return proc_mkdir_data(name, 0, parent, NULL);
|
||||
}
|
||||
EXPORT_SYMBOL(proc_mkdir);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue