[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 <mp3@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
Martin Peschke 2007-05-09 11:01:20 +02:00 committed by James Bottomley
parent 7b104bcb8e
commit 869b2b444c
1 changed files with 13 additions and 27 deletions

View File

@ -156,44 +156,30 @@ zfcp_fsf_req_free(struct zfcp_fsf_req *fsf_req)
kfree(fsf_req); kfree(fsf_req);
} }
/** /*
* zfcp_fsf_req_dismiss - dismiss a single fsf request * Never ever call this without shutting down the adapter first.
*/ * Otherwise the adapter would continue using and corrupting s390 storage.
static void zfcp_fsf_req_dismiss(struct zfcp_adapter *adapter, * Included BUG_ON() call to ensure this is done.
struct zfcp_fsf_req *fsf_req, * ERP is supposed to be the only user of this function.
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
*/ */
void 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; struct zfcp_fsf_req *fsf_req, *tmp;
unsigned long flags; unsigned long flags;
LIST_HEAD(remove_queue); 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); spin_lock_irqsave(&adapter->req_list_lock, flags);
atomic_set(&adapter->reqs_active, 0); 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); list_splice_init(&adapter->req_list[i], &remove_queue);
spin_unlock_irqrestore(&adapter->req_list_lock, flags); spin_unlock_irqrestore(&adapter->req_list_lock, flags);
counter = 0; list_for_each_entry_safe(fsf_req, tmp, &remove_queue, list) {
list_for_each_entry_safe(request, tmp, &remove_queue, list) { list_del(&fsf_req->list);
zfcp_fsf_req_dismiss(adapter, request, counter); fsf_req->status |= ZFCP_STATUS_FSFREQ_DISMISSED;
counter++; zfcp_fsf_req_complete(fsf_req);
} }
} }