aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/md.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-06-26 03:27:59 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 12:58:39 -0400
commitd4dbd0250ea1d24bb3d2d13559432fa069d795e2 (patch)
tree060ec90679ea9d7a535146a35b0e9a8c9d940252 /drivers/md/md.c
parent45dc2de1e53a29f898b81326b8a16e6192d52e4e (diff)
[PATCH] md: Allow raid 'layout' to be read and set via sysfs
Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 4b74c77213c3..e3261c438a65 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2155,6 +2155,32 @@ level_store(mddev_t *mddev, const char *buf, size_t len)
2155static struct md_sysfs_entry md_level = 2155static struct md_sysfs_entry md_level =
2156__ATTR(level, 0644, level_show, level_store); 2156__ATTR(level, 0644, level_show, level_store);
2157 2157
2158
2159static ssize_t
2160layout_show(mddev_t *mddev, char *page)
2161{
2162 /* just a number, not meaningful for all levels */
2163 return sprintf(page, "%d\n", mddev->layout);
2164}
2165
2166static ssize_t
2167layout_store(mddev_t *mddev, const char *buf, size_t len)
2168{
2169 char *e;
2170 unsigned long n = simple_strtoul(buf, &e, 10);
2171 if (mddev->pers)
2172 return -EBUSY;
2173
2174 if (!*buf || (*e && *e != '\n'))
2175 return -EINVAL;
2176
2177 mddev->layout = n;
2178 return len;
2179}
2180static struct md_sysfs_entry md_layout =
2181__ATTR(layout, 0655, layout_show, layout_store);
2182
2183
2158static ssize_t 2184static ssize_t
2159raid_disks_show(mddev_t *mddev, char *page) 2185raid_disks_show(mddev_t *mddev, char *page)
2160{ 2186{
@@ -2741,6 +2767,7 @@ __ATTR(suspend_hi, S_IRUGO|S_IWUSR, suspend_hi_show, suspend_hi_store);
2741 2767
2742static struct attribute *md_default_attrs[] = { 2768static struct attribute *md_default_attrs[] = {
2743 &md_level.attr, 2769 &md_level.attr,
2770 &md_layout.attr,
2744 &md_raid_disks.attr, 2771 &md_raid_disks.attr,
2745 &md_chunk_size.attr, 2772 &md_chunk_size.attr,
2746 &md_size.attr, 2773 &md_size.attr,