]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
GFS2: Add sysfs link to device
authorSteven Whitehouse <swhiteho@redhat.com>
Thu, 13 Aug 2009 11:18:08 +0000 (12:18 +0100)
committerSteven Whitehouse <swhiteho@redhat.com>
Mon, 17 Aug 2009 10:11:18 +0000 (11:11 +0100)
This adds a link from the per-gfs2 sb sysfs directory to
the block device upon which the filesystem is mounted. The
link is called "device", strangely enough :-)

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/sys.c

index dda4bf1e9eb44b50a112c9be613885cdbcb71bfa..0d4f7e974e9f78f284e11c206d3bef3b88d8f4a7 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/kobject.h>
 #include <asm/uaccess.h>
 #include <linux/gfs2_ondisk.h>
+#include <linux/genhd.h>
 
 #include "gfs2.h"
 #include "incore.h"
@@ -542,9 +543,17 @@ int gfs2_sys_fs_add(struct gfs2_sbd *sdp)
        if (error)
                goto fail_tune;
 
+       error = sysfs_create_link(&sdp->sd_kobj,
+                                 &disk_to_dev(sb->s_bdev->bd_disk)->kobj,
+                                 "device");
+       if (error)
+               goto fail_lock_module;
+
        kobject_uevent_env(&sdp->sd_kobj, KOBJ_ADD, envp);
        return 0;
 
+fail_lock_module:
+       sysfs_remove_group(&sdp->sd_kobj, &lock_module_group);
 fail_tune:
        sysfs_remove_group(&sdp->sd_kobj, &tune_group);
 fail_reg:
@@ -556,6 +565,7 @@ fail:
 
 void gfs2_sys_fs_del(struct gfs2_sbd *sdp)
 {
+       sysfs_remove_link(&sdp->sd_kobj, "device");
        sysfs_remove_group(&sdp->sd_kobj, &tune_group);
        sysfs_remove_group(&sdp->sd_kobj, &lock_module_group);
        kobject_put(&sdp->sd_kobj);