Commit 45dc2de1 authored by NeilBrown's avatar NeilBrown Committed by Linus Torvalds
Browse files

[PATCH] md: Allow rdev state to be set via sysfs

The md/dev-XXX/state file can now be written:

 "faulty" simulates an error on the device
 "remove" removes the device from the array (if it is not busy)
Signed-off-by: default avatarNeil Brown <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent 9e653b63
......@@ -302,6 +302,9 @@ Each directory contains:
This includes spares that are in the process
of being recoverred to
This list make grow in future.
This can be written to.
Writing "faulty" simulates a failure on the device.
Writing "remove" removes the device from the array.
An approximate count of read errors that have been detected on
......@@ -1745,8 +1745,32 @@ state_show(mdk_rdev_t *rdev, char *page)
return len+sprintf(page+len, "\n");
static ssize_t
state_store(mdk_rdev_t *rdev, const char *buf, size_t len)
/* can write
* faulty - simulates and error
* remove - disconnects the device
int err = -EINVAL;
if (cmd_match(buf, "faulty") && rdev->mddev->pers) {
md_error(rdev->mddev, rdev);
err = 0;
} else if (cmd_match(buf, "remove")) {
if (rdev->raid_disk >= 0)
err = -EBUSY;
else {
mddev_t *mddev = rdev->mddev;
err = 0;
return err ? err : len;
static struct rdev_sysfs_entry
rdev_state = __ATTR_RO(state);
rdev_state = __ATTR(state, 0644, state_show, state_store);
static ssize_t
super_show(mdk_rdev_t *rdev, char *page)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment