linux-IllusionX/fs/partitions
Karel Zak 7d13af3279 partitions: use sector size for EFI GPT
Currently, kernel uses strictly 512-byte sectors for EFI GPT parsing.
That's wrong.

UEFI standard (version 2.3, May 2009, 5.3.1 GUID Format overview, page
95) defines that LBA is always based on the logical block size. It
means bdev_logical_block_size() (aka BLKSSZGET) for Linux.

This patch removes static sector size from EFI GPT parser.

The problem is reproducible with the latest GNU Parted:

 # modprobe scsi_debug dev_size_mb=50 sector_size=4096

  # ./parted /dev/sdb print
  Model: Linux scsi_debug (scsi)
  Disk /dev/sdb: 52.4MB
  Sector size (logical/physical): 4096B/4096B
  Partition Table: gpt

  Number  Start   End     Size    File system  Name     Flags
   1      24.6kB  3002kB  2978kB               primary
   2      3002kB  6001kB  2998kB               primary
   3      6001kB  9003kB  3002kB               primary

  # blockdev --rereadpt /dev/sdb
  # dmesg | tail -1
   sdb: unknown partition table      <---- !!!

with this patch:

  # blockdev --rereadpt /dev/sdb
  # dmesg | tail -1
   sdb: sdb1 sdb2 sdb3

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-11-23 09:29:13 +01:00
..
acorn.c fs/partitions/acorn.c: remove dead code 2008-10-16 11:21:47 -07:00
acorn.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amiga.c [PATCH] Fix check_partition routines 2006-12-07 08:39:30 -08:00
amiga.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
atari.c [PATCH] Fix check_partition routines 2006-12-07 08:39:30 -08:00
atari.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
check.c block: Expose discard granularity 2009-11-10 11:50:21 +01:00
check.h block: replace @ext_minors with GENHD_FL_EXT_DEVT 2008-10-09 08:56:08 +02:00
efi.c partitions: use sector size for EFI GPT 2009-11-23 09:29:13 +01:00
efi.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ibm.c block: Do away with the notion of hardsect_size 2009-05-22 23:22:54 +02:00
ibm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
karma.c [PATCH] partitions: Read Rio Karma partition table 2006-01-16 23:15:29 -08:00
karma.h [PATCH] partitions: Read Rio Karma partition table 2006-01-16 23:15:29 -08:00
Kconfig partition: use DEFAULT_SGI_PARTITION for SGI_PARTION default 2008-02-06 10:41:08 -08:00
ldm.c fs: ldm.[ch] use get_unaligned_* helpers 2008-07-25 10:53:26 -07:00
ldm.h fs: ldm.[ch] use get_unaligned_* helpers 2008-07-25 10:53:26 -07:00
mac.c [PATCH] Enable RAID autorun on Mac partition tables. 2006-12-04 08:36:37 -08:00
mac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile partition: add support for sysv68 partitions 2007-05-08 11:15:09 -07:00
msdos.c block: Do away with the notion of hardsect_size 2009-05-22 23:22:54 +02:00
msdos.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
osf.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
osf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sgi.c [PARTITION]: Add whole_disk attribute. 2007-02-10 23:50:00 -08:00
sgi.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sun.c fs/partitions/sun.c endianness annotations 2007-10-14 12:41:51 -07:00
sun.h [PARTITION]: Sun/Solaris VTOC table corrections 2007-07-30 00:27:31 -07:00
sysv68.c partition: add support for sysv68 partitions 2007-05-08 11:15:09 -07:00
sysv68.h partition: add support for sysv68 partitions 2007-05-08 11:15:09 -07:00
ultrix.c fs/partitions/ultrix.c should #include "ultrix.h" 2005-11-08 16:49:14 +01:00
ultrix.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00