xfs
[Top] [All Lists]

[PATCH 2/6] xfs: add a sysfs kset

To: xfs@xxxxxxxxxxx
Subject: [PATCH 2/6] xfs: add a sysfs kset
From: Brian Foster <bfoster@xxxxxxxxxx>
Date: Fri, 6 Jun 2014 09:13:30 -0400
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1402060414-22075-1-git-send-email-bfoster@xxxxxxxxxx>
References: <1402060414-22075-1-git-send-email-bfoster@xxxxxxxxxx>
Create a sysfs kset to contain all sub-objects associated with the XFS
module. The kset is created and removed on module initialization and
removal respectively. The kset uses fs_obj as a parent. This leads to
the creation of a /sys/fs/xfs directory when the kset exists.

Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
---
 fs/xfs/xfs_super.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 8f0333b..1766214 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -61,6 +61,7 @@
 static const struct super_operations xfs_super_operations;
 static kmem_zone_t *xfs_ioend_zone;
 mempool_t *xfs_ioend_pool;
+struct kset *xfs_kset;
 
 #define MNTOPT_LOGBUFS "logbufs"       /* number of XFS log buffers */
 #define MNTOPT_LOGBSIZE        "logbsize"      /* size of XFS log buffers */
@@ -1761,9 +1762,15 @@ init_xfs_fs(void)
        if (error)
                goto out_cleanup_procfs;
 
+       xfs_kset = kset_create_and_add("xfs", NULL, fs_kobj);
+       if (!xfs_kset) {
+               error = -ENOMEM;
+               goto out_sysctl_unregister;;
+       }
+
        error = xfs_qm_init();
        if (error)
-               goto out_sysctl_unregister;
+               goto out_kset_unregister;
 
        error = register_filesystem(&xfs_fs_type);
        if (error)
@@ -1772,6 +1779,8 @@ init_xfs_fs(void)
 
  out_qm_exit:
        xfs_qm_exit();
+ out_kset_unregister:
+       kset_unregister(xfs_kset);
  out_sysctl_unregister:
        xfs_sysctl_unregister();
  out_cleanup_procfs:
@@ -1793,6 +1802,7 @@ exit_xfs_fs(void)
 {
        xfs_qm_exit();
        unregister_filesystem(&xfs_fs_type);
+       kset_unregister(xfs_kset);
        xfs_sysctl_unregister();
        xfs_cleanup_procfs();
        xfs_buf_terminate();
-- 
1.8.3.1

<Prev in Thread] Current Thread [Next in Thread>