Hi all I am discussing about an issue I get with my Orico USBtoSATA 5 bays enclosure The issue is that every 5 minutes the BTRFS perform a revalidate action that will fill the dmesg with this log: [ 98.917660] sd 0:0:0:1: [sdb] Very big device. Trying to use READ CAPACITY(16). [ 99.057592] sd 0:0:0:0: [sda] Very big device. Trying to use READ CAPACITY(16). [ 99.304848] sd 0:0:0:2: [sdc] Very big device. Trying to use READ CAPACITY(16). [ 99.465374] sd 0:0:0:3: [sdd] Very big device. Trying to use READ CAPACITY(16). [ 99.669241] sd 0:0:0:4: [sde] Very big device. Trying to use READ CAPACITY(16). After some investigation I think I have found out the reason The sd_read_capacity in scsi layer check if read_capacity_10 or read_capacity_16 should be used It does it based on what this function return: static int sd_try_rc16_first(struct scsi_device *sdp) { if (sdp->host->max_cmd_len < 16) return 0; if (sdp->try_rc_10_first) return 0; if (sdp->scsi_level > SCSI_SPC_2) return 1; if (scsi_device_protection(sdp)) return 1; return 0; } the problem is that in the usb to scsi glue layer, the try_rc_10_first is picked like this: /* * Many devices do not respond properly to READ_CAPACITY_16. * Tell the SCSI layer to try READ_CAPACITY_10 first. * However some USB 3.0 drive enclosures return capacity * modulo 2TB. Those must use READ_CAPACITY_16 */ if (!(us->fflags & US_FL_NEEDS_CAP16)) sdev->try_rc_10_first = 1; Are we sure this is the correct option? I mean to me the default should be to go for rc_10 if there is a specific request in the unusual devices, rather then if we dont' need cap16 we go for it, like: if ((us->fflags & US_FL_NEEDS_CAP10)) sdev->try_rc_10_first = 1; What you think about? Bye -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html