• Al Viro 's avatar
    [SCSI] TYPE_RBC cache fixes (sbp2.c affected) · 631e8a13
    Al Viro authored
    	a) TYPE_SDAD renamed to TYPE_RBC and taken to scsi.h
    	b) in sbp2.c remapping of TYPE_RPB to TYPE_DISK turned off
    	c) relevant places in midlayer and sd.c taught to accept TYPE_RBC
    	d) sd.c::sd_read_cache_type() looks into page 6 when dealing with
    TYPE_RBC - these guys have writeback cache flag there and are not guaranteed
    to have page 8 at all.
    	e) sd_read_cache_type() got an extra sanity check - it checks that
    it got the page it asked for before using its contents.  And screams if
    mismatch had happened.  Rationale: there are broken devices out there that
    are "helpful" enough to go for "I don't have a page you've asked for, here,
    have another one".  For example, PL3507 had been caught doing just that...
    	f) sbp2 sets sdev->use_10_for_rw and sdev->use_10_for_ms instead
    of bothering to remap READ6/WRITE6/MOD_SENSE, so most of the conversions
    in there are gone now.
    
    	Incidentally, I wonder if USB storage devices that have no
    mode page 8 are simply RBC ones.  I haven't touched that, but it might
    be interesting to check...
    Signed-off-by: default avatarAl Viro <viro@parcelfarce.linux.theplanet.co.uk>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    631e8a13
sd.c 47.3 KB