diff options
author | Vyacheslav Dubeyko <Vyacheslav.Dubeyko@hgst.com> | 2014-08-08 17:20:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-08 18:57:20 -0400 |
commit | ef43d5cd84b7d2ea09846de34e14be7d74be3e6f (patch) | |
tree | 67163715eb9012e931f9a7eefafe59a71ad20401 /fs/nilfs2/sysfs.h | |
parent | abc968dbf291955ac750ecf59e3baf2b529a8257 (diff) |
nilfs2: add /sys/fs/nilfs2/<device>/segments group
This patch adds creation of /sys/fs/nilfs2/<device>/segments
group.
The segments group contains attributes that describe
details about volume's segments:
(1) segments_number - show number of segments on volume.
(2) blocks_per_segment - show number of blocks in segment.
(3) clean_segments - show count of clean segments.
(4) dirty_segments - show count of dirty segments.
Signed-off-by: Vyacheslav Dubeyko <Vyacheslav.Dubeyko@hgst.com>
Cc: Vyacheslav Dubeyko <slava@dubeyko.com>
Cc: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Cc: Michael L. Semon <mlsemon35@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/nilfs2/sysfs.h')
-rw-r--r-- | fs/nilfs2/sysfs.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/nilfs2/sysfs.h b/fs/nilfs2/sysfs.h index ad4d5bcc16f5..228bdd14f945 100644 --- a/fs/nilfs2/sysfs.h +++ b/fs/nilfs2/sysfs.h | |||
@@ -30,6 +30,8 @@ | |||
30 | * @sg_superblock_kobj_unregister: completion state | 30 | * @sg_superblock_kobj_unregister: completion state |
31 | * @sg_segctor_kobj: /sys/fs/<nilfs>/<device>/segctor | 31 | * @sg_segctor_kobj: /sys/fs/<nilfs>/<device>/segctor |
32 | * @sg_segctor_kobj_unregister: completion state | 32 | * @sg_segctor_kobj_unregister: completion state |
33 | * @sg_segments_kobj: /sys/fs/<nilfs>/<device>/segments | ||
34 | * @sg_segments_kobj_unregister: completion state | ||
33 | */ | 35 | */ |
34 | struct nilfs_sysfs_dev_subgroups { | 36 | struct nilfs_sysfs_dev_subgroups { |
35 | /* /sys/fs/<nilfs>/<device>/superblock */ | 37 | /* /sys/fs/<nilfs>/<device>/superblock */ |
@@ -39,6 +41,10 @@ struct nilfs_sysfs_dev_subgroups { | |||
39 | /* /sys/fs/<nilfs>/<device>/segctor */ | 41 | /* /sys/fs/<nilfs>/<device>/segctor */ |
40 | struct kobject sg_segctor_kobj; | 42 | struct kobject sg_segctor_kobj; |
41 | struct completion sg_segctor_kobj_unregister; | 43 | struct completion sg_segctor_kobj_unregister; |
44 | |||
45 | /* /sys/fs/<nilfs>/<device>/segments */ | ||
46 | struct kobject sg_segments_kobj; | ||
47 | struct completion sg_segments_kobj_unregister; | ||
42 | }; | 48 | }; |
43 | 49 | ||
44 | #define NILFS_COMMON_ATTR_STRUCT(name) \ | 50 | #define NILFS_COMMON_ATTR_STRUCT(name) \ |
@@ -62,6 +68,7 @@ struct nilfs_##name##_attr { \ | |||
62 | }; | 68 | }; |
63 | 69 | ||
64 | NILFS_DEV_ATTR_STRUCT(dev); | 70 | NILFS_DEV_ATTR_STRUCT(dev); |
71 | NILFS_DEV_ATTR_STRUCT(segments); | ||
65 | NILFS_DEV_ATTR_STRUCT(superblock); | 72 | NILFS_DEV_ATTR_STRUCT(superblock); |
66 | NILFS_DEV_ATTR_STRUCT(segctor); | 73 | NILFS_DEV_ATTR_STRUCT(segctor); |
67 | 74 | ||
@@ -92,6 +99,11 @@ NILFS_DEV_ATTR_STRUCT(segctor); | |||
92 | #define NILFS_DEV_RW_ATTR(name) \ | 99 | #define NILFS_DEV_RW_ATTR(name) \ |
93 | NILFS_RW_ATTR(dev, name) | 100 | NILFS_RW_ATTR(dev, name) |
94 | 101 | ||
102 | #define NILFS_SEGMENTS_RO_ATTR(name) \ | ||
103 | NILFS_RO_ATTR(segments, name) | ||
104 | #define NILFS_SEGMENTS_RW_ATTR(name) \ | ||
105 | NILFS_RW_ATTR(segs_info, name) | ||
106 | |||
95 | #define NILFS_SUPERBLOCK_RO_ATTR(name) \ | 107 | #define NILFS_SUPERBLOCK_RO_ATTR(name) \ |
96 | NILFS_RO_ATTR(superblock, name) | 108 | NILFS_RO_ATTR(superblock, name) |
97 | #define NILFS_SUPERBLOCK_RW_ATTR(name) \ | 109 | #define NILFS_SUPERBLOCK_RW_ATTR(name) \ |
@@ -108,6 +120,8 @@ NILFS_DEV_ATTR_STRUCT(segctor); | |||
108 | (&nilfs_feature_attr_##name.attr) | 120 | (&nilfs_feature_attr_##name.attr) |
109 | #define NILFS_DEV_ATTR_LIST(name) \ | 121 | #define NILFS_DEV_ATTR_LIST(name) \ |
110 | (&nilfs_dev_attr_##name.attr) | 122 | (&nilfs_dev_attr_##name.attr) |
123 | #define NILFS_SEGMENTS_ATTR_LIST(name) \ | ||
124 | (&nilfs_segments_attr_##name.attr) | ||
111 | #define NILFS_SUPERBLOCK_ATTR_LIST(name) \ | 125 | #define NILFS_SUPERBLOCK_ATTR_LIST(name) \ |
112 | (&nilfs_superblock_attr_##name.attr) | 126 | (&nilfs_superblock_attr_##name.attr) |
113 | #define NILFS_SEGCTOR_ATTR_LIST(name) \ | 127 | #define NILFS_SEGCTOR_ATTR_LIST(name) \ |