[PATCH scsi-misc-2.6 00/07] scsi: requeue path consolidation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 Hello again, guys.

 This is the last patchset and assumes that all previous patchsets are
applied.  This patchset conolidates requeue paths such that all
requeue after command issue goes through scsi_requeue_command().
Requeueing due to unifinished bytes goes through
scsi_requeue_command_reprep() and due to error through
scsi_retry_command().

 This is the last patchset before the new implementation of scsi
device state model.  New state model is complete now and ready to be
splitted & submitted.  As soon as these patchsets are settled, I'll
post the new device model patchset.

[ Start of patch descriptions ]

01_scsi_requeue_make_requeue_command_public.patch
	: update and make public scsi_requeue_command()

	This patch makes the following changes to
	scsi_requeue_command() and make the function public.

	* remove redundant argument @q
	* remove REQ_DONTPREP clearing
	* add state/owner setting

	A new inline function scsi_requeue_command_reprep() is defined
	and used for the original users of scsi_requeue_command().

	Using a wrapper function for reprep cases is suggested by
	Christoph Hellwig.

02_scsi_requeue_use_scsi_requeue_command_in_scsi_retry_command.patch
	: make scsi_retry_command() use scsi_requeue_command()

	scsi_retry_command() orignally used scsi_queue_insert() for
	requeueing.  This patch makes it use scsi_retry_command()
	instead.  Adding a call to scsi_device_unbusy() is sufficient
	and the change also makes scsi_retry_command() symmetric with
	scsi_finish_command() in how it unbusies the command.  Also as
	there's nothing to return, make the function void.

03_scsi_requeue_use_scsi_retry_command_instead_of_scsi_queue_insert.patch
	: replace scsi_queue_insert() usages with scsi_retry_command()

	There are two users of scsi_queue_insert() left now.  One in
	scsi_softirq() and the other in scsi_eh_flush_done_q().  The
	only additional functionality of scsi_queue_insert() used is
	setting device_blocked on ADD_TO_MLQUEUE case in
	scsi_softirq().

	Open code device_blocked setting and replace
	scsi_queue_insert() with scsi_retry_command() in both cases.

04_scsi_requeue_remove_scsi_queue_insert.patch
	: remove scsi_queue_insert()

	scsi_queue_insert() now has no user left.  Kill it.

05_scsi_requeue_move_init_cmd_errh.patch
	: move scsi_init_cmd_errh() from request_fn to prep_fn.

	As now all non-reprepped requeue goes through
	scsi_retry_command() which clears sense buffer, there's no
	need to call scsi_init_cmd_errh() in scsi_request_fn().  Move
	scsi_init_cmd_errh() to scsi_prep_fn().

06_scsi_requeue_reset_result.patch
	: add cmd->result clearing

	cmd->result wasn't cleared on requeue or reprep.  Clear it.

07_scsi_requeue_consolidate_setup_cmd_retry_calls_in_eh.patch
	: consolidate scsi_cmd_retry() calls

	scsi_setup_cmd_retry() is needed because scsi eh may alter
	scsi_cmnd to issue eh commands.  Consolidate calls to
	scsi_setup_cmd_retry() to one place in scsi_eh_flush_done_q().
	This change makes scsi_retry_command() more symmetrical with
	scsi_finish_command().

[ End of patch descriptions ]

 Thanks a lot.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux