block: remove CONFIG_LBDAF
Currently support for 64-bit sector_t and blkcnt_t is optional on 32-bit architectures. These types are required to support block device and/or file sizes larger than 2 TiB, and have generally defaulted to on for a long time. Enabling the option only increases the i386 tinyconfig size by 145 bytes, and many data structures already always use 64-bit values for their in-core and on-disk data structures anyway, so there should not be a large change in dynamic memory usage either. Dropping this option removes a somewhat weird non-default config that has cause various bugs or compiler warnings when actually used. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:

committed by
Jens Axboe

parent
75199aa526
commit
72deb455b5
@@ -2256,22 +2256,6 @@ static void read_capacity_error(struct scsi_disk *sdkp, struct scsi_device *sdp,
|
||||
|
||||
#define READ_CAPACITY_RETRIES_ON_RESET 10
|
||||
|
||||
/*
|
||||
* Ensure that we don't overflow sector_t when CONFIG_LBDAF is not set
|
||||
* and the reported logical block size is bigger than 512 bytes. Note
|
||||
* that last_sector is a u64 and therefore logical_to_sectors() is not
|
||||
* applicable.
|
||||
*/
|
||||
static bool sd_addressable_capacity(u64 lba, unsigned int sector_size)
|
||||
{
|
||||
u64 last_sector = (lba + 1ULL) << (ilog2(sector_size) - 9);
|
||||
|
||||
if (sizeof(sector_t) == 4 && last_sector > U32_MAX)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp,
|
||||
unsigned char *buffer)
|
||||
{
|
||||
@@ -2337,14 +2321,6 @@ static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp,
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (!sd_addressable_capacity(lba, sector_size)) {
|
||||
sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a "
|
||||
"kernel compiled with support for large block "
|
||||
"devices.\n");
|
||||
sdkp->capacity = 0;
|
||||
return -EOVERFLOW;
|
||||
}
|
||||
|
||||
/* Logical blocks per physical block exponent */
|
||||
sdkp->physical_block_size = (1 << (buffer[13] & 0xf)) * sector_size;
|
||||
|
||||
@@ -2426,14 +2402,6 @@ static int read_capacity_10(struct scsi_disk *sdkp, struct scsi_device *sdp,
|
||||
return sector_size;
|
||||
}
|
||||
|
||||
if (!sd_addressable_capacity(lba, sector_size)) {
|
||||
sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a "
|
||||
"kernel compiled with support for large block "
|
||||
"devices.\n");
|
||||
sdkp->capacity = 0;
|
||||
return -EOVERFLOW;
|
||||
}
|
||||
|
||||
sdkp->capacity = lba + 1;
|
||||
sdkp->physical_block_size = sector_size;
|
||||
return sector_size;
|
||||
|
Reference in New Issue
Block a user