Re: [PATCHSET] block,scsi,libata: implement alt_size

From: Jeff Garzik
Date: Sat Jan 31 2009 - 22:21:01 EST


Tejun Heo wrote:
Hello,

This patchset implements alt_size, which is a size hint to the users
of a block device. It's primarily to communicate the BIOS (HPA) size
on ATA devices to userland, so that dmraid can consider it when trying
to figure out BIOS raid layout. This is critical as dmraid can be
tricked into assemblying the wrong raid when fed with the unlocked
size and if the disk content is right (or, rather, wrong) and good
number of distros are shipping with ignore_hpa=1 as default.

This patch contains the following three patches.

0001-block-add-alt_size.patch
0002-scsi-add-scsi_device-alt_capacity.patch
0003-libata-export-HPA-size-as-alt_size.patch

Without the above three patches, I get the following on my nv RAID-0
if HPA unlocking is turned on.

# ~/work/dmraid/tools/dmraid -a y
RAID set "nvidia_djgdjigi" was activated
# mount /dev/dm-0 /mnt/tmp
mount: wrong fs type, bad option, bad superblock on /dev/dm-0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

With the above three patches and modified dmraid,

ck804:~/os/work/build # ~/work/dmraid/tools/dmraid -a y -v -v -v
...
NOTICE: /dev/sdb: using BIOS sectors 234439535
RAID set "nvidia_djgdjigi" was activated
...
ck804:~/os/work/build # mount /dev/dm-0 /mnt/tmp
ck804:~/os/work/build # umount /dev/dm-0

But the net result is that you are telling dmraid that it is OK to proceed, even though part of the disk it wants is really missing. That seems unwise, because are you not basically proceeding with a known corrupt dataset at that point?

Jeff




--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/