Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Mar 2005 16:38:02 +0200
From:      Bernd Walter <ticso@cicely12.cicely.de>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        ticso@cicely.de
Subject:   Re: Reattach/redetect allways connected umass device - is it possible ?
Message-ID:  <20050328143801.GH14532@cicely12.cicely.de>
In-Reply-To: <32733.1112019870@critter.freebsd.dk>
References:  <20050328134856.GF14532@cicely12.cicely.de> <32733.1112019870@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 28, 2005 at 04:24:30PM +0200, Poul-Henning Kamp wrote:
> In message <20050328134856.GF14532@cicely12.cicely.de>, Bernd Walter writes:
> 
> >> Driver support for this is not really meaterialized and therefore
> >> the model now is that when the media is ejected the geom device
> >> is removed and a new one created right away, even if a new media
> >> is not inserted right away.
> >
> >Do you get eject notifications from any device type?
> 
> Right now I belive floppy disks DTRT.

Interesting.

> >One of my problems is that it is possible with SCSI MO drives to
> >eject the media, reinsert a new one and errously continue to work
> >with the old GEOM layout.
> >I already trashed the data on one media by forgetting to trigger
> >a reprobe - since then I use a mount script.
> 
> Well, I have no idea how to pull the information out of the CAM/SCSI
> code, but I'm sure there is _some_ way it can be done.

There is the test unit ready command.
Either it returns OK, or you may get usefull sense data.
Here is an example:

No media in the drive:
[60]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): NOT READY asc:3a,0
(pass0:ahc0:0:1:0): Medium not present
Exit 1

Media just inserted and give the drive some time to spin up:
[61]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): UNIT ATTENTION asc:28,0
(pass0:ahc0:0:1:0): Not ready to ready change, medium may have changed
Exit 1

Just retry TUR command:
[62]cicely13# camcontrol tur -n da -u 0 -v
Unit is ready

Media ejected:
[63]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): NOT READY asc:3a,0
(pass0:ahc0:0:1:0): Medium not present
Exit 1

Media reinserted without waiting the drive to spin up:
[64]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): NOT READY asc:98,0
(pass0:ahc0:0:1:0): Vendor Specific ASC
Exit 1

After the drive spun up:
[65]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): UNIT ATTENTION asc:28,0
(pass0:ahc0:0:1:0): Not ready to ready change, medium may have changed
Exit 1

Retry TUR:
[66]cicely13# camcontrol tur -n da -u 0 -v
Unit is ready

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd@bwct.de                                  info@bwct.de



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050328143801.GH14532>