[U-Boot] [U-Boot, 2/2] disk: part_dos: don't claim whole-disk FAT filesystems

Tom Rini trini at ti.com
Mon Oct 8 20:47:36 CEST 2012


On Fri, Oct 05, 2012 at 01:17:40PM -0000, Stephen Warren wrote:

> From: Stephen Warren <swarren at nvidia.com>
> 
> Logically, a disk that contains a raw FAT filesystem does not in fact
> have a partition table. However, test_part_dos() was claiming that such
> disks did in fact have a DOS-style partition table. This caused
> get_device_and_partition() not to return a whole-disk disk_partition_t,
> since part_type != PART_TYPE_UNKNOWN.
> 
> part_dos.c's print_partition_extended() detected the raw FAT filesystem
> condition and printed a fake partition table that encompassed the whole
> disk.
> 
> However, part_dos.c's get_partition_info_extended() did not return any
> valid partitions in this case. This combination caused
> get_device_and_partition() not to find any valid partitions, and hence
> to return an error.
> 
> Fix test_part_dos() not to claim that raw FAT filesystems are DOS
> partition tables. In turn, this causes get_device_and_partition() to
> return a whole-disk disk_partition_t, and hence the following commands
> work:
> 
> fatls mmc 0 /
> fatls mmc 0:auto /
> 
> An alternative would be to modify print_partition_extended() to detect
> raw FAT filesystems, just like print_partition_extended() does, and to
> return a fake partition in this case. However, this seems logically
> incorrect, and also duplicates code, since get_device_and_partition()
> falls back to returning a whole-disk partition when there is no partition
> table on the device.
> 
> Signed-off-by: Stephen Warren <swarren at nvidia.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121008/cdc79a84/attachment.pgp>


More information about the U-Boot mailing list