mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
fix check for md raid imsm signature on 4k devices
On devices with 4k logical block size, the imsm signature is located 8k from the end of the device, not 1k as is the case for devices with 512 LBS.
This commit is contained in:
parent
3cba071254
commit
12667e9897
@ -56,6 +56,16 @@ static int _dev_has_imsm_magic(struct device *dev, uint64_t devsize_sectors)
|
||||
{
|
||||
char imsm_signature[IMSM_SIG_LEN];
|
||||
uint64_t off = (devsize_sectors * 512) - 1024;
|
||||
unsigned int physical_block_size = 0;
|
||||
unsigned int logical_block_size = 0;
|
||||
|
||||
if (!dev_get_direct_block_sizes(dev, &physical_block_size, &logical_block_size))
|
||||
return_0;
|
||||
|
||||
if (logical_block_size == 4096)
|
||||
off = (devsize_sectors * 512) - 8192;
|
||||
else
|
||||
off = (devsize_sectors * 512) - 1024;
|
||||
|
||||
if (!dev_read_bytes(dev, off, IMSM_SIG_LEN, imsm_signature))
|
||||
return_0;
|
||||
|
Loading…
Reference in New Issue
Block a user