--- linux-2.6.6/include/scsi/scsi_devinfo.h 2004-05-30 00:12:10.050746696 +0200 +++ linux_patched/include/scsi/scsi_devinfo.h 2004-05-30 00:19:23.898791768 +0200 @@ -24,4 +24,5 @@ #define BLIST_REPORTLUN2 0x20000 /* try REPORT_LUNS even for SCSI-2 devs (if HBA supports more than 8 LUNs) */ #define BLIST_NOREPORTLUN 0x40000 /* don't try REPORT_LUNS scan (SCSI-3 devs) */ +#define BLIST_NORMB 0x80000 /* Known to be not removable*/ #endif --- linux-2.6.6/drivers/scsi/scsi_devinfo.c 2004-05-10 04:32:27.000000000 +0200 +++ linux_patched/drivers/scsi/scsi_devinfo.c 2004-05-30 00:14:00.382973648 +0200 @@ -183,6 +183,7 @@ {"TOSHIBA", "CDROM", NULL, BLIST_ISROM}, {"TOSHIBA", "CD-ROM", NULL, BLIST_ISROM}, {"XYRATEX", "RS", "*", BLIST_SPARSELUN | BLIST_LARGELUN}, + {"iRiver", "iFP Mass Driver", NULL, BLIST_NORMB}, {"Zzyzx", "RocketStor 500S", NULL, BLIST_SPARSELUN}, {"Zzyzx", "RocketStor 2000", NULL, BLIST_SPARSELUN}, { NULL, NULL, NULL, 0 }, --- linux-2.6.6/drivers/scsi/scsi_scan.c 2004-05-30 00:12:07.911071976 +0200 +++ linux_patched/drivers/scsi/scsi_scan.c 2004-05-30 00:18:30.694879992 +0200 @@ -565,7 +565,7 @@ */ sdev->inq_periph_qual = (inq_result[0] >> 5) & 7; - sdev->removable = (0x80 & inq_result[1]) >> 7; + sdev->removable = (((0x80 & inq_result[1]) >> 7) && !(*bflags &BLIST_NORMB)); sdev->lockable = sdev->removable; sdev->soft_reset = (inq_result[7] & 1) && ((inq_result[3] & 7) == 2);