summaryrefslogtreecommitdiffstats
path: root/include/linux/kernfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/kernfs.h')
-rw-r--r--include/linux/kernfs.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h
index ab25c8b6d9e3..814643f7ee52 100644
--- a/include/linux/kernfs.h
+++ b/include/linux/kernfs.h
@@ -15,6 +15,7 @@
15#include <linux/lockdep.h> 15#include <linux/lockdep.h>
16#include <linux/rbtree.h> 16#include <linux/rbtree.h>
17#include <linux/atomic.h> 17#include <linux/atomic.h>
18#include <linux/uidgid.h>
18#include <linux/wait.h> 19#include <linux/wait.h>
19 20
20struct file; 21struct file;
@@ -325,12 +326,14 @@ void kernfs_destroy_root(struct kernfs_root *root);
325 326
326struct kernfs_node *kernfs_create_dir_ns(struct kernfs_node *parent, 327struct kernfs_node *kernfs_create_dir_ns(struct kernfs_node *parent,
327 const char *name, umode_t mode, 328 const char *name, umode_t mode,
329 kuid_t uid, kgid_t gid,
328 void *priv, const void *ns); 330 void *priv, const void *ns);
329struct kernfs_node *kernfs_create_empty_dir(struct kernfs_node *parent, 331struct kernfs_node *kernfs_create_empty_dir(struct kernfs_node *parent,
330 const char *name); 332 const char *name);
331struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent, 333struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent,
332 const char *name, 334 const char *name, umode_t mode,
333 umode_t mode, loff_t size, 335 kuid_t uid, kgid_t gid,
336 loff_t size,
334 const struct kernfs_ops *ops, 337 const struct kernfs_ops *ops,
335 void *priv, const void *ns, 338 void *priv, const void *ns,
336 struct lock_class_key *key); 339 struct lock_class_key *key);
@@ -415,12 +418,14 @@ static inline void kernfs_destroy_root(struct kernfs_root *root) { }
415 418
416static inline struct kernfs_node * 419static inline struct kernfs_node *
417kernfs_create_dir_ns(struct kernfs_node *parent, const char *name, 420kernfs_create_dir_ns(struct kernfs_node *parent, const char *name,
418 umode_t mode, void *priv, const void *ns) 421 umode_t mode, kuid_t uid, kgid_t gid,
422 void *priv, const void *ns)
419{ return ERR_PTR(-ENOSYS); } 423{ return ERR_PTR(-ENOSYS); }
420 424
421static inline struct kernfs_node * 425static inline struct kernfs_node *
422__kernfs_create_file(struct kernfs_node *parent, const char *name, 426__kernfs_create_file(struct kernfs_node *parent, const char *name,
423 umode_t mode, loff_t size, const struct kernfs_ops *ops, 427 umode_t mode, kuid_t uid, kgid_t gid,
428 loff_t size, const struct kernfs_ops *ops,
424 void *priv, const void *ns, struct lock_class_key *key) 429 void *priv, const void *ns, struct lock_class_key *key)
425{ return ERR_PTR(-ENOSYS); } 430{ return ERR_PTR(-ENOSYS); }
426 431
@@ -498,12 +503,15 @@ static inline struct kernfs_node *
498kernfs_create_dir(struct kernfs_node *parent, const char *name, umode_t mode, 503kernfs_create_dir(struct kernfs_node *parent, const char *name, umode_t mode,
499 void *priv) 504 void *priv)
500{ 505{
501 return kernfs_create_dir_ns(parent, name, mode, priv, NULL); 506 return kernfs_create_dir_ns(parent, name, mode,
507 GLOBAL_ROOT_UID, GLOBAL_ROOT_GID,
508 priv, NULL);
502} 509}
503 510
504static inline struct kernfs_node * 511static inline struct kernfs_node *
505kernfs_create_file_ns(struct kernfs_node *parent, const char *name, 512kernfs_create_file_ns(struct kernfs_node *parent, const char *name,
506 umode_t mode, loff_t size, const struct kernfs_ops *ops, 513 umode_t mode, kuid_t uid, kgid_t gid,
514 loff_t size, const struct kernfs_ops *ops,
507 void *priv, const void *ns) 515 void *priv, const void *ns)
508{ 516{
509 struct lock_class_key *key = NULL; 517 struct lock_class_key *key = NULL;
@@ -511,15 +519,17 @@ kernfs_create_file_ns(struct kernfs_node *parent, const char *name,
511#ifdef CONFIG_DEBUG_LOCK_ALLOC 519#ifdef CONFIG_DEBUG_LOCK_ALLOC
512 key = (struct lock_class_key *)&ops->lockdep_key; 520 key = (struct lock_class_key *)&ops->lockdep_key;
513#endif 521#endif
514 return __kernfs_create_file(parent, name, mode, size, ops, priv, ns, 522 return __kernfs_create_file(parent, name, mode, uid, gid,
515 key); 523 size, ops, priv, ns, key);
516} 524}
517 525
518static inline struct kernfs_node * 526static inline struct kernfs_node *
519kernfs_create_file(struct kernfs_node *parent, const char *name, umode_t mode, 527kernfs_create_file(struct kernfs_node *parent, const char *name, umode_t mode,
520 loff_t size, const struct kernfs_ops *ops, void *priv) 528 loff_t size, const struct kernfs_ops *ops, void *priv)
521{ 529{
522 return kernfs_create_file_ns(parent, name, mode, size, ops, priv, NULL); 530 return kernfs_create_file_ns(parent, name, mode,
531 GLOBAL_ROOT_UID, GLOBAL_ROOT_GID,
532 size, ops, priv, NULL);
523} 533}
524 534
525static inline int kernfs_remove_by_name(struct kernfs_node *parent, 535static inline int kernfs_remove_by_name(struct kernfs_node *parent,