Whamcloud - gitweb
LU-10467 lustre: use l_wait_event_abortable where appropriate.
[fs/lustre-release.git] / lustre / obdclass / genops.c
index 092ed77..2c822cb 100644 (file)
@@ -1990,7 +1990,6 @@ static bool obd_request_slot_avail(struct client_obd *cli,
 int obd_get_request_slot(struct client_obd *cli)
 {
        struct obd_request_slot_waiter   orsw;
-       struct l_wait_info               lwi;
        int                              rc;
 
        spin_lock(&cli->cl_loi_list_lock);
@@ -2005,11 +2004,9 @@ int obd_get_request_slot(struct client_obd *cli)
        orsw.orsw_signaled = false;
        spin_unlock(&cli->cl_loi_list_lock);
 
-       lwi = LWI_INTR(LWI_ON_SIGNAL_NOOP, NULL);
-       rc = l_wait_event(orsw.orsw_waitq,
-                         obd_request_slot_avail(cli, &orsw) ||
-                         orsw.orsw_signaled,
-                         &lwi);
+       rc = l_wait_event_abortable(orsw.orsw_waitq,
+                                   obd_request_slot_avail(cli, &orsw) ||
+                                   orsw.orsw_signaled);
 
        /* Here, we must take the lock to avoid the on-stack 'orsw' to be
         * freed but other (such as obd_put_request_slot) is using it. */
@@ -2021,6 +2018,7 @@ int obd_get_request_slot(struct client_obd *cli)
                        else
                                list_del(&orsw.orsw_entry);
                }
+               rc = -EINTR;
        }
 
        if (orsw.orsw_signaled) {