|
@@ -34,7 +34,6 @@ enum kernfs_node_type {
|
|
|
};
|
|
|
|
|
|
#define KERNFS_TYPE_MASK 0x000f
|
|
|
-#define KERNFS_COPY_NAME (KERNFS_DIR | KERNFS_LINK)
|
|
|
#define KERNFS_ACTIVE_REF KERNFS_FILE
|
|
|
#define KERNFS_FLAG_MASK ~KERNFS_TYPE_MASK
|
|
|
|
|
@@ -44,6 +43,7 @@ enum kernfs_node_flag {
|
|
|
KERNFS_HAS_SEQ_SHOW = 0x0040,
|
|
|
KERNFS_HAS_MMAP = 0x0080,
|
|
|
KERNFS_LOCKDEP = 0x0100,
|
|
|
+ KERNFS_STATIC_NAME = 0x0200,
|
|
|
};
|
|
|
|
|
|
/* type-specific structures for kernfs_node union members */
|
|
@@ -212,12 +212,13 @@ void kernfs_destroy_root(struct kernfs_root *root);
|
|
|
struct kernfs_node *kernfs_create_dir_ns(struct kernfs_node *parent,
|
|
|
const char *name, umode_t mode,
|
|
|
void *priv, const void *ns);
|
|
|
-struct kernfs_node *kernfs_create_file_ns_key(struct kernfs_node *parent,
|
|
|
- const char *name,
|
|
|
- umode_t mode, loff_t size,
|
|
|
- const struct kernfs_ops *ops,
|
|
|
- void *priv, const void *ns,
|
|
|
- struct lock_class_key *key);
|
|
|
+struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent,
|
|
|
+ const char *name,
|
|
|
+ umode_t mode, loff_t size,
|
|
|
+ const struct kernfs_ops *ops,
|
|
|
+ void *priv, const void *ns,
|
|
|
+ bool name_is_static,
|
|
|
+ struct lock_class_key *key);
|
|
|
struct kernfs_node *kernfs_create_link(struct kernfs_node *parent,
|
|
|
const char *name,
|
|
|
struct kernfs_node *target);
|
|
@@ -265,10 +266,10 @@ kernfs_create_dir_ns(struct kernfs_node *parent, const char *name,
|
|
|
{ return ERR_PTR(-ENOSYS); }
|
|
|
|
|
|
static inline struct kernfs_node *
|
|
|
-kernfs_create_file_ns_key(struct kernfs_node *parent, const char *name,
|
|
|
- umode_t mode, loff_t size,
|
|
|
- const struct kernfs_ops *ops, void *priv,
|
|
|
- const void *ns, struct lock_class_key *key)
|
|
|
+__kernfs_create_file(struct kernfs_node *parent, const char *name,
|
|
|
+ umode_t mode, loff_t size, const struct kernfs_ops *ops,
|
|
|
+ void *priv, const void *ns, bool name_is_static,
|
|
|
+ struct lock_class_key *key)
|
|
|
{ return ERR_PTR(-ENOSYS); }
|
|
|
|
|
|
static inline struct kernfs_node *
|
|
@@ -330,8 +331,8 @@ kernfs_create_file_ns(struct kernfs_node *parent, const char *name,
|
|
|
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
|
|
key = (struct lock_class_key *)&ops->lockdep_key;
|
|
|
#endif
|
|
|
- return kernfs_create_file_ns_key(parent, name, mode, size, ops, priv,
|
|
|
- ns, key);
|
|
|
+ return __kernfs_create_file(parent, name, mode, size, ops, priv, ns,
|
|
|
+ false, key);
|
|
|
}
|
|
|
|
|
|
static inline struct kernfs_node *
|