/* Max number of iovectors we can use off the stack when sending requests. */
#define CIFS_MAX_IOV_SIZE 8
+#define RESPONSE_TIMEOUT_SECS 50
+
void
cifs_wake_up_task(struct mid_q_entry *mid)
{
static int
wait_for_response(struct TCP_Server_Info *server, struct mid_q_entry *midQ)
{
- int error;
+ int ret;
+
+ ret = wait_event_killable_timeout(server->response_q,
+ midQ->mid_state != MID_REQUEST_SUBMITTED &&
+ midQ->mid_state != MID_RESPONSE_RECEIVED,
+ RESPONSE_TIMEOUT_SECS*HZ);
- error = wait_event_state(server->response_q,
- midQ->mid_state != MID_REQUEST_SUBMITTED &&
- midQ->mid_state != MID_RESPONSE_RECEIVED,
- (TASK_KILLABLE|TASK_FREEZABLE_UNSAFE));
- if (error < 0)
+ if ((ret < 0) || (ret == 0))
return -ERESTARTSYS;
return 0;