Merge git://oss.sgi.com:8090/xfs/xfs-2.6
[linux-drm-fsl-dcu.git] / drivers / s390 / scsi / zfcp_fsf.c
index 067f1519eb04dcda87ff07f79d6cae072675770e..ef16f7ca4bb1cf1001010cf2c41854391edc6b09 100644 (file)
@@ -176,28 +176,25 @@ static void zfcp_fsf_req_dismiss(struct zfcp_adapter *adapter,
 /**
  * zfcp_fsf_req_dismiss_all - dismiss all remaining fsf requests
  */
-int zfcp_fsf_req_dismiss_all(struct zfcp_adapter *adapter)
+void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *adapter)
 {
        struct zfcp_fsf_req *request, *tmp;
        unsigned long flags;
+       LIST_HEAD(remove_queue);
        unsigned int i, counter;
 
        spin_lock_irqsave(&adapter->req_list_lock, flags);
        atomic_set(&adapter->reqs_active, 0);
-       for (i=0; i<REQUEST_LIST_SIZE; i++) {
-               if (list_empty(&adapter->req_list[i]))
-                       continue;
-
-               counter = 0;
-               list_for_each_entry_safe(request, tmp,
-                                        &adapter->req_list[i], list) {
-                       zfcp_fsf_req_dismiss(adapter, request, counter);
-                       counter++;
-               }
-       }
+       for (i=0; i<REQUEST_LIST_SIZE; i++)
+               list_splice_init(&adapter->req_list[i], &remove_queue);
+
        spin_unlock_irqrestore(&adapter->req_list_lock, flags);
 
-       return 0;
+       counter = 0;
+       list_for_each_entry_safe(request, tmp, &remove_queue, list) {
+               zfcp_fsf_req_dismiss(adapter, request, counter);
+               counter++;
+       }
 }
 
 /*
@@ -4563,7 +4560,7 @@ zfcp_fsf_req_sbal_check(unsigned long *flags,
 /*
  * set qtcb pointer in fsf_req and initialize QTCB
  */
-static inline void
+static void
 zfcp_fsf_req_qtcb_init(struct zfcp_fsf_req *fsf_req)
 {
        if (likely(fsf_req->qtcb != NULL)) {