At least, to base the device format on whether we are running on a 32 bit or 64 bit architecture does not make sense. If a tool calling stat(2) can not handle 12 bit major/20 bits minor, it would already break or about to break when running on a 64 bit machine. Regarding SCSI, the 17th disk will use SCSI_DISK1_MAJOR (65). Only the 257th disk will use the first scsi major (8) again and need a minor greater than 256. (see sd_major() in drivers/scsi/sd.c for details). Gwendal. On Tue, Mar 3, 2015 at 5:22 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > On Tue, Mar 03, 2015 at 05:10:22PM -0800, Daniel Ehrenberg wrote: >> > What's to guarantee that your ABI change won't break any of those? >> >> I guess it's impossible to guarantee, but if there is an error, it'll >> be that an -EOVERFLOW error is suppressed and the high bits of the >> major:minor pair are shaved off by the userspace program. I would >> suspect that this would just make debugging harder, rather than >> actually break an automated program which counts on getting EOVERFLOW >> from a huge block device, but no way to know. The block device has to >> actually exist for this to happen, and all we're talking about is stat >> failing. So it's replacing an an error code with erroneous way to get >> data about a device node (erroneous just because userspace ignores >> some of the bits with the answer). > > All it takes is more than 16 SCSI disks, AFAICS, and use of open-coded > MINOR() somewhere in old userland code... -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html