This is an updated version of the patchset to clean up the asymmetry of blk_get/put_request usage: http://marc.info/?l=linux-ide&m=120882410712466&w=2 This patchset removes the code calling blk_put_request against the requests that are not allocated via blk_get_request. They can use __GFP_WAIT allocation so we can easily convert them to use blk_get/put_request properly. This patchset enables us to remove the following hack in blk_put_request: /* * Gee, IDE calls in w/ NULL q. Fix IDE and remove the * following if (q) test. */ if (q) { spin_lock_irqsave(q->queue_lock, flags); __blk_put_request(q, req); spin_unlock_irqrestore(q->queue_lock, flags); } The major changes are: - I remove the ide_wait/head_wait path in ide_do_drive_cmd(). It does the same thing that blk_execute_rq() does. So let's simply use blk_execute_rq(). The nice side effect is that I unexport blk_end_sync_rq() since I converted all the users. - I drop the unnecessary patch to make ide_do_drive_cmd return rq->errors: http://marc.info/?l=linux-ide&m=120882410612456&w=2 #1-10 are for the ide subsystem and #11-13 for the block layer. This is against the lastest Linus tree. -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html