]> bbs.cooldavid.org Git - net-next-2.6.git/commit
[SCSI] libosd: fix blk_put_request called from within request_end_io
authorBoaz Harrosh <bharrosh@panasas.com>
Tue, 31 Mar 2009 17:05:29 +0000 (20:05 +0300)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Fri, 3 Apr 2009 14:22:56 +0000 (09:22 -0500)
commit8c0baccadc86d9f07e663dd255751dd70e461ba3
tree334d6d79b8159042779a458bf90c20292aa56efb
parenta9bddd74630b2a1f2dedc537417c372b2d9edc76
[SCSI] libosd: fix blk_put_request called from within request_end_io

A fix for a very serious and stupid bug in osd_initiator. It
used to call blk_put_request() regardless of if it was from
the end_io callback or if called after a sync execution.
It should call the unlocked version __blk_put_request() instead.

Also fixed is the remove of _abort_unexecuted_bios hack, and use of
blk_end_request(,-ERROR,) to deallocate half baked requests. I've
audited the code and it should be safe.

Reported and
Tested-by: Xu Yang <onlyxuyang@qq.com>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/osd/osd_initiator.c