default_move_object:SD_RES_EIO -> io_op_done:leave_cluster
will make the node leave the cluster, just because of a single
disk EIO. error_to_sderr can call md_handle_eio to fix it.
This can be tested by:
1. dog vdi create test 2G -P
2. dog vdi delete test &
3. echo 1 > /sys/block/sdX/device/delete
Signed-off-by: Meng Lingkun <
mengl...@cmss.chinamobile.com>
---
sheep/store/plain_store.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sheep/store/plain_store.c b/sheep/store/plain_store.c
index fe4f84b..00307a8 100644
--- a/sheep/store/plain_store.c
+++ b/sheep/store/plain_store.c
@@ -449,8 +449,7 @@ int default_remove_object(uint64_t oid, uint8_t ec_index)
if (errno == ENOENT)
return SD_RES_NO_OBJ;
- sd_err("failed, %s, %m", path);
- return SD_RES_EIO;
+ return err_to_sderr(path, oid, errno);
}
return SD_RES_SUCCESS;
--
1.8.3.1