Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=869b2b444c58302e3233ce0b671fabf28135a37d
Commit:     869b2b444c58302e3233ce0b671fabf28135a37d
Parent:     7b104bcb8e460e45a1aebe3da9b86aacdb4cab12
Author:     Martin Peschke <[EMAIL PROTECTED]>
AuthorDate: Wed May 9 11:01:20 2007 +0200
Committer:  James Bottomley <[EMAIL PROTECTED]>
CommitDate: Wed May 16 10:01:38 2007 -0400

    [SCSI] zfcp: avoid clutter in erp_dbf
    
    avoid clutter in erp_dbf
    
    cleanup zfcp_fsf_req_dismiss functions:
    - avoid clutter in erp_dbf (reqs_active is always 0)
    - fold called three-line function into calling function
    - add meaningful comment
    - coding style
    
    Signed-off-by: Martin Peschke <[EMAIL PROTECTED]>
    Signed-off-by: Swen Schillig <[EMAIL PROTECTED]>
    Signed-off-by: James Bottomley <[EMAIL PROTECTED]>
---
 drivers/s390/scsi/zfcp_fsf.c |   40 +++++++++++++---------------------------
 1 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index a8b0254..0eb31e1 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -156,44 +156,30 @@ zfcp_fsf_req_free(struct zfcp_fsf_req *fsf_req)
        kfree(fsf_req);
 }
 
-/**
- * zfcp_fsf_req_dismiss - dismiss a single fsf request
- */
-static void zfcp_fsf_req_dismiss(struct zfcp_adapter *adapter,
-                                struct zfcp_fsf_req *fsf_req,
-                                unsigned int counter)
-{
-       u64 dbg_tmp[2];
-
-       dbg_tmp[0] = (u64) atomic_read(&adapter->reqs_active);
-       dbg_tmp[1] = (u64) counter;
-       debug_event(adapter->erp_dbf, 4, (void *) dbg_tmp, 16);
-       list_del(&fsf_req->list);
-       fsf_req->status |= ZFCP_STATUS_FSFREQ_DISMISSED;
-       zfcp_fsf_req_complete(fsf_req);
-}
-
-/**
- * zfcp_fsf_req_dismiss_all - dismiss all remaining fsf requests
+/*
+ * Never ever call this without shutting down the adapter first.
+ * Otherwise the adapter would continue using and corrupting s390 storage.
+ * Included BUG_ON() call to ensure this is done.
+ * ERP is supposed to be the only user of this function.
  */
 void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *adapter)
 {
-       struct zfcp_fsf_req *request, *tmp;
+       struct zfcp_fsf_req *fsf_req, *tmp;
        unsigned long flags;
        LIST_HEAD(remove_queue);
-       unsigned int i, counter;
+       unsigned int i;
 
+       BUG_ON(atomic_test_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status));
        spin_lock_irqsave(&adapter->req_list_lock, flags);
        atomic_set(&adapter->reqs_active, 0);
-       for (i=0; i<REQUEST_LIST_SIZE; i++)
+       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);
 
-       counter = 0;
-       list_for_each_entry_safe(request, tmp, &remove_queue, list) {
-               zfcp_fsf_req_dismiss(adapter, request, counter);
-               counter++;
+       list_for_each_entry_safe(fsf_req, tmp, &remove_queue, list) {
+               list_del(&fsf_req->list);
+               fsf_req->status |= ZFCP_STATUS_FSFREQ_DISMISSED;
+               zfcp_fsf_req_complete(fsf_req);
        }
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to