OSDN Git Service

target: Remove extra se_device->execute_task_lock access in fast path
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 1 Dec 2011 02:18:33 +0000 (18:18 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 14 Dec 2011 11:48:46 +0000 (11:48 +0000)
commit4d2300ccffd22d1d0213b6a8e4d685eb6ca069c0
treea76817aa4aaba5a6ffb05b3e6a0ea9ca654a0519
parent65586d51e0986be574118286c3d0007e903a2add
target: Remove extra se_device->execute_task_lock access in fast path

This patch makes __transport_execute_tasks() perform the addition of
tasks to dev->execute_task_list via __transport_add_tasks_from_cmd()
while holding dev->execute_task_lock during normal I/O fast path
submission.

It effectively removes the unnecessary re-acquire of dev->execute_task_lock
during transport_execute_tasks() -> transport_add_tasks_from_cmd() ahead
of calling  __transport_execute_tasks() to queue tasks for the passed
*se_cmd descriptor.

(v2: Re-add goto check_depth usage for multi-task submission for now..)

Cc: Christoph Hellwig <hch@lst.de>
Cc: Roland Dreier <roland@purestorage.com>
Cc: Joern Engel <joern@logfs.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_transport.c
include/target/target_core_base.h