/* fc_fcp_error() - Handler for FCP layer errors @fsp: The FCP packet the error is on @fp: The frame that has errored  */
static void fc_fcp_error(struct fc_fcp_pkt *, struct fc_frame *)
/* fc_fcp_error() - Handler for FCP layer errors @fsp: The FCP packet the error is on @fp: The frame that has errored  */
static void fc_fcp_error(struct fc_fcp_pkt *, struct fc_frame *)
{
	int error = PTR_ERR(fp);
	if (fc_fcp_lock_pkt(fsp))
		return;
	if (error == -FC_EX_CLOSED) {
		fc_fcp_retry_cmd(fsp);
		goto unlock;
	}
	fsp->state &= ~FC_SRB_ABORT_PENDING;
	fsp->status_code = FC_CMD_PLOGO;
	fc_fcp_complete_locked(fsp);
unlock:
	fc_fcp_unlock_pkt(fsp);
}