Commit 869b2b44 authored by Martin Peschke's avatar Martin Peschke Committed by James Bottomley
Browse files

[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: default avatarMartin Peschke <mp3@de.ibm.com>
Signed-off-by: default avatarSwen Schillig <swen@vnet.ibm.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 7b104bcb
Loading
Loading
Loading
Loading
+13 −27
Original line number Diff line number Diff line
@@ -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++)
		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);
	}
}