-int Manage_reconfig(char *devname, int fd, int layout)
-{
- mdu_array_info_t info;
- if (ioctl(fd, GET_ARRAY_INFO, &info) != 0) {
- fprintf(stderr, Name ": Cannot get array information for %s: %s\n",
- devname, strerror(errno));
- return 1;
- }
- info.layout = layout;
- printf("layout set to %d\n", info.layout);
- if (ioctl(fd, SET_ARRAY_INFO, &info) != 0) {
- fprintf(stderr, Name ": Cannot set layout for %s: %s\n",
- devname, strerror(errno));
- return 1;
- }
- return 0;
-}
-
-static int
-add_remove_device_container(int fd, int add_remove, struct stat *stb)
-{
- int devnum = fd2devnum(fd);
- char *devname = devnum2devname(devnum);
- int sfd = devname ? connect_monitor(devname) : -1;
- struct md_message msg;
- int err = 0;
-
- if (devname && sfd < 0) {
- fprintf(stderr, Name ": Cannot connect to monitor for %s: %s\n",
- devname, strerror(errno));
- free(devname);
- return 1;
- } else if (sfd < 0) {
- fprintf(stderr, Name ": Cannot determine container name for"
- " device number %d\n", devnum);
- return 1;
- }
-
- if (add_remove)
- ack(sfd, 0, 0);
- else if (send_remove_device(sfd, stb->st_rdev, 0, 0) != 0) {
- fprintf(stderr, Name ": Failed to send \'%s device\'"
- " message to the container monitor\n",
- add_remove ? "add" : "remove");
- err = 1;
- }
-
- /* check the reply */
- if (!err && receive_message(sfd, &msg, 0) != 0) {
- fprintf(stderr, Name ": Failed to receive an acknowledgement"
- " from the container monitor\n");
- err = 1;
- }
-
- if (!err && msg.seq != 0) {
- fprintf(stderr, Name ": %s device failed error code %d\n",
- add_remove ? "Add" : "Remove", msg.seq);
- err = 1;
- }
-
- free(devname);
- close(sfd);
-
- return err;
-}
-