Re: [PATCH] Snoop SET FEATURES - WRITE CACHE ENABLE/DISABLE command

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

 



On Mon, 2006-05-29 at 18:08 +0900, Tejun Heo wrote:

> > 
> > 1) Tejun's revalidate should trigger scsi_rescan_device(), as your patch 
> > indicates.  But that's pretty much all that needs to be done.
> > 
> > 2) Thus, a new bit (ATA_FLAG_SCSI_RESCAN) and a new workqueue are 
> > unnecessary.
> 
> SCSI rescan is done by issuing commands using scsi_execute_req().  The 
> commands are supposed to be processed via normal SCSI command execution 
> path which is blocked during EH is in progress, so we need to rescan in 
> separate context.
Thank you for giving the reason why my machine hanged when
scsi_rescan_device() is invoked in SCSI EH thread :)
> 
> * I've renamed ata_hotplug_wq to ata_scsi_wq in hotplug patches.  I 
> think rescan can use this wq instead of creating its own.
Yes, ata_scsi_wq will do the work, which can't be done in SCSI EH thread.

> * When snooping for SETFEATURES in ata_scsi_qc_complete(), why check 
> cdb[0] for ATA_16/12?  Isn't simply checking tf.command enough?
Oh, checking cdb[0] for ATA_16/12 is unnecessary since the command id is
unique.

> * There's a race window between ATA revalidation and SCSI rescan.  We 
> can plug this hole by deferring commands till rescan is complete.  But I 
> doubt it would be worth the trouble.
> 
This is really a problem. But the race condition is not so critical that
we need to bother to do some sync between libata and SCSI layer, right?

Thanks,
Forrest
-
: 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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux