aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSerge E. Hallyn <serue@us.ibm.com>2010-05-03 16:23:15 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-21 09:37:31 -0700
commitbe867b194a3ae3c680c29521287ae49b4d44d420 (patch)
tree1b3ad125d02603c6a9cc4bb8ae518695d7c6a66d /include
parentdriver core: Implement ns directory support for device classes. (diff)
downloadlinux-dev-be867b194a3ae3c680c29521287ae49b4d44d420.tar.xz
linux-dev-be867b194a3ae3c680c29521287ae49b4d44d420.zip
sysfs: Comment sysfs directory tagging logic
Add some in-line comments to explain the new infrastructure, which was introduced to support sysfs directory tagging with namespaces. I think an overall description someplace might be good too, but it didn't really seem to fit into Documentation/filesystems/sysfs.txt, which appears more geared toward users, rather than maintainers, of sysfs. (Tejun, please let me know if I can make anything clearer or failed altogether to comment something that should be commented.) Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Tejun Heo <tj@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r--include/linux/kobject.h11
-rw-r--r--include/linux/sysfs.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index d9456f69904f..b60d2dfe4e69 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -136,12 +136,23 @@ struct kobj_attribute {
extern const struct sysfs_ops kobj_sysfs_ops;
+/*
+ * Namespace types which are used to tag kobjects and sysfs entries.
+ * Network namespace will likely be the first.
+ */
enum kobj_ns_type {
KOBJ_NS_TYPE_NONE = 0,
KOBJ_NS_TYPES
};
struct sock;
+
+/*
+ * Callbacks so sysfs can determine namespaces
+ * @current_ns: return calling task's namespace
+ * @netlink_ns: return namespace to which a sock belongs (right?)
+ * @initial_ns: return the initial namespace (i.e. init_net_ns)
+ */
struct kobj_ns_type_operations {
enum kobj_ns_type type;
const void *(*current_ns)(void);
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index 976c4664b216..47f1c95b5298 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -178,6 +178,7 @@ struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd);
void sysfs_put(struct sysfs_dirent *sd);
void sysfs_printk_last_file(void);
+/* Called to clear a ns tag when it is no longer valid */
void sysfs_exit_ns(enum kobj_ns_type type, const void *tag);
int __must_check sysfs_init(void);