[haiku-bugs] Re: [Haiku] #9655: External usb hard disk with switch doesn't work/mount properly

  • From: "mmlr" <trac@xxxxxxxxxxxx>
  • Date: Sat, 13 Apr 2013 14:56:21 -0000

#9655: External usb hard disk with switch doesn't work/mount properly
-------------------------+-------------------------------------------------
   Reporter:  Giova84    |      Owner:  mmlr
       Type:  bug        |     Status:  new
   Priority:  normal     |  Milestone:  R1
  Component:             |    Version:  R1/Development
  Drivers/USB            |   Keywords:  External usb hard disk with switch
 Resolution:             |  doesn't work properly spindown mount
 Blocked By:             |   Blocking:
Has a Patch:  0          |   Platform:  x86
-------------------------+-------------------------------------------------

Comment (by mmlr):

 There's really no mystery as to the power button here. The usb_disk driver
 is a really simple driver that supports a subset of SCSI, just enough to
 get most USB mass storage devices going. It is not a SCSI module and does
 not share code with the SCSI layer. It eventually needs to be rewritten to
 be such a module, but for this to happen the USB stack itself has to be
 brought to the new device API. Noone has done that work yet, as it's kind
 of non trivial.

 In any case, usb_disk does not support spin up/down. It does not attempt
 to power the disk on when a new device is attached. It assumes that when a
 device is connected and enumerating a LUN, the backing device is powered
 already. This assumption holds for pretty much every USB stick and most
 card readers or similar devices. It usually holds for external USB disks
 as well, but breaks in the case of your device.

 The delay you mention in bringing the device back up once it has spun down
 comes from the same limitation. The usb_disk driver does not recognise the
 fact that the disk is not powered anymore and does not take action to
 bring it back up. Instead it simply sees this case as a generic error and
 initiates a normal mass storage reset. In the case of your device it seems
 like that also powers the disk back on (this is implementation dependent).
 The reset procedure does however take a lot longer than a simple spin up
 would, that's where the delay you see comes from.

 I don't have an explanation for the "unmount on opening a zip file"
 problem, it is probably unrelated to usb_disk. The behaviour you describe
 sounds more like a filesystem problem causing the volume to be uncleanly
 unmounted on an error. Re-opening a file from that disk could then cause
 the volume to be auto mounted again. If it was a usb_disk error that
 caused the device to vanish, there would be no volume to be mounted
 anymore. Please provide a syslog snippet so this can be verified and
 possibly open a new ticket if it clearly is a filesystem error.

--
Ticket URL: <http://dev.haiku-os.org/ticket/9655#comment:11>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: