lkml.org 
[lkml]   [2009]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCHSET] block,scsi,libata: implement alt_size
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






\
 
 \ /
  Last update: 2009-02-01 04:49    [W:0.151 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site