Enable non-queueable flush flag for SATA.
Signed-off-by: Shaohua Li <[email protected]>
---
drivers/ata/libata-scsi.c | 2 ++
1 file changed, 2 insertions(+)
Index: linux/drivers/ata/libata-scsi.c
===================================================================
--- linux.orig/drivers/ata/libata-scsi.c 2011-05-04 14:20:41.000000000 +0800
+++ linux/drivers/ata/libata-scsi.c 2011-05-04 14:28:28.000000000 +0800
@@ -3424,7 +3424,9 @@ void ata_scsi_scan_host(struct ata_port
sdev = __scsi_add_device(ap->scsi_host, channel, id, 0,
NULL);
if (!IS_ERR(sdev)) {
+ struct request_queue *q = sdev->request_queue;
dev->sdev = sdev;
+ blk_set_queue_flush_queueable(q, false);
scsi_device_put(sdev);
} else {
dev->sdev = NULL;
On Wed, May 04, 2011 at 04:17:28PM +0800, [email protected] wrote:
> Enable non-queueable flush flag for SATA.
>
> Signed-off-by: Shaohua Li <[email protected]>
> ---
> drivers/ata/libata-scsi.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> Index: linux/drivers/ata/libata-scsi.c
> ===================================================================
> --- linux.orig/drivers/ata/libata-scsi.c 2011-05-04 14:20:41.000000000 +0800
> +++ linux/drivers/ata/libata-scsi.c 2011-05-04 14:28:28.000000000 +0800
> @@ -3424,7 +3424,9 @@ void ata_scsi_scan_host(struct ata_port
> sdev = __scsi_add_device(ap->scsi_host, channel, id, 0,
> NULL);
> if (!IS_ERR(sdev)) {
> + struct request_queue *q = sdev->request_queue;
> dev->sdev = sdev;
> + blk_set_queue_flush_queueable(q, false);
> scsi_device_put(sdev);
> } else {
> dev->sdev = NULL;
Isn't ata_scsi_dev_config() better place for this?
Thakns.
--
tejun
On 05/04/2011 04:53 AM, Tejun Heo wrote:
> On Wed, May 04, 2011 at 04:17:28PM +0800, [email protected] wrote:
>> @@ -3424,7 +3424,9 @@ void ata_scsi_scan_host(struct ata_port
>> sdev = __scsi_add_device(ap->scsi_host, channel, id, 0,
>> NULL);
>> if (!IS_ERR(sdev)) {
>> + struct request_queue *q = sdev->request_queue;
>> dev->sdev = sdev;
>> + blk_set_queue_flush_queueable(q, false);
>> scsi_device_put(sdev);
>> } else {
>> dev->sdev = NULL;
> Isn't ata_scsi_dev_config() better place for this?
Yes :)