Loading Documentation/md.txt +5 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,11 @@ All md devices contain: This can be written only while the array is being assembled, not after it is started. layout The "layout" for the array for the particular level. This is simply a number that is interpretted differently by different levels. It can be written while assembling an array. new_dev This file can be written but not read. The value written should be a block device number as major:minor. e.g. 8:0 Loading drivers/md/md.c +27 −0 Original line number Diff line number Diff line Loading @@ -2155,6 +2155,32 @@ level_store(mddev_t *mddev, const char *buf, size_t len) static struct md_sysfs_entry md_level = __ATTR(level, 0644, level_show, level_store); static ssize_t layout_show(mddev_t *mddev, char *page) { /* just a number, not meaningful for all levels */ return sprintf(page, "%d\n", mddev->layout); } static ssize_t layout_store(mddev_t *mddev, const char *buf, size_t len) { char *e; unsigned long n = simple_strtoul(buf, &e, 10); if (mddev->pers) return -EBUSY; if (!*buf || (*e && *e != '\n')) return -EINVAL; mddev->layout = n; return len; } static struct md_sysfs_entry md_layout = __ATTR(layout, 0655, layout_show, layout_store); static ssize_t raid_disks_show(mddev_t *mddev, char *page) { Loading Loading @@ -2741,6 +2767,7 @@ __ATTR(suspend_hi, S_IRUGO|S_IWUSR, suspend_hi_show, suspend_hi_store); static struct attribute *md_default_attrs[] = { &md_level.attr, &md_layout.attr, &md_raid_disks.attr, &md_chunk_size.attr, &md_size.attr, Loading Loading
Documentation/md.txt +5 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,11 @@ All md devices contain: This can be written only while the array is being assembled, not after it is started. layout The "layout" for the array for the particular level. This is simply a number that is interpretted differently by different levels. It can be written while assembling an array. new_dev This file can be written but not read. The value written should be a block device number as major:minor. e.g. 8:0 Loading
drivers/md/md.c +27 −0 Original line number Diff line number Diff line Loading @@ -2155,6 +2155,32 @@ level_store(mddev_t *mddev, const char *buf, size_t len) static struct md_sysfs_entry md_level = __ATTR(level, 0644, level_show, level_store); static ssize_t layout_show(mddev_t *mddev, char *page) { /* just a number, not meaningful for all levels */ return sprintf(page, "%d\n", mddev->layout); } static ssize_t layout_store(mddev_t *mddev, const char *buf, size_t len) { char *e; unsigned long n = simple_strtoul(buf, &e, 10); if (mddev->pers) return -EBUSY; if (!*buf || (*e && *e != '\n')) return -EINVAL; mddev->layout = n; return len; } static struct md_sysfs_entry md_layout = __ATTR(layout, 0655, layout_show, layout_store); static ssize_t raid_disks_show(mddev_t *mddev, char *page) { Loading Loading @@ -2741,6 +2767,7 @@ __ATTR(suspend_hi, S_IRUGO|S_IWUSR, suspend_hi_show, suspend_hi_store); static struct attribute *md_default_attrs[] = { &md_level.attr, &md_layout.attr, &md_raid_disks.attr, &md_chunk_size.attr, &md_size.attr, Loading