From a47e44fb966d8f212b589012686bba0d7b7fb0d9 Mon Sep 17 00:00:00 2001 From: Adam Kwolek Date: Thu, 9 Jun 2011 13:00:55 +1000 Subject: imsm: FIX: Remove timeout from wait_for_reshape_imsm() Timeout should not be used for select function in wait_for_reshape_imsm(). Signed-off-by: Adam Kwolek Signed-off-by: NeilBrown --- super-intel.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/super-intel.c b/super-intel.c index 4b94e9d..292584b 100644 --- a/super-intel.c +++ b/super-intel.c @@ -8573,8 +8573,6 @@ int wait_for_reshape_imsm(struct mdinfo *sra, int ndata) unsigned long long to_complete = sra->reshape_progress; unsigned long long position_to_set = to_complete / ndata; - struct timeval timeout; - if (fd < 0) { dprintf("imsm: wait_for_reshape_imsm() " "cannot open reshape_position\n"); @@ -8605,25 +8603,22 @@ int wait_for_reshape_imsm(struct mdinfo *sra, int ndata) return -1; } - /* FIXME should not need a timeout at all */ - timeout.tv_sec = 30; - timeout.tv_usec = 0; do { char action[20]; fd_set rfds; FD_ZERO(&rfds); FD_SET(fd, &rfds); - select(fd+1, NULL, NULL, &rfds, &timeout); + select(fd+1, &rfds, NULL, NULL, NULL); + if (sysfs_get_str(sra, NULL, "sync_action", + action, 20) > 0 && + strncmp(action, "reshape", 7) != 0) + break; if (sysfs_fd_get_ll(fd, &completed) < 0) { dprintf("imsm: wait_for_reshape_imsm() " "cannot read reshape_position (in loop)\n"); close(fd); return 1; } - if (sysfs_get_str(sra, NULL, "sync_action", - action, 20) > 0 && - strncmp(action, "reshape", 7) != 0) - break; } while (completed < to_complete); close(fd); return 0; -- cgit v1.2.1