[PATCH] common: filetype: do not redetect MBR-type devices as a FAT-type

Trent Piepho tpiepho at kymetacorp.com
Mon Nov 9 10:49:53 PST 2015


On Mon, 2015-11-09 at 13:32 +0300, Peter Mamonov wrote:
> Deleted pieces of code detect MBR-containig device as a FAT-type device,
> if it's first partition contains a FAT filesystem. This behaviour enabled one
> to mount the FAT FS which is either directly on the device (disk0) or on
> the first partition (disk0.0) using the same command:
>     mount /dev/disk0 /fat
> However, the desired behaviour can be reached with a:
>     mount /dev/disk0 /fat || mount /dev/disk0.0 /fat || echo "Mounting failed"

The in flash env for omap is found by mounting a FAT filesystem and
reading an env file from it.  The code that does this uses the disk as
the device, rather than the partition.  Which I thought was odd and
wondered why/if that worked correctly....

Anyway, this change would break that code.  I suspect than instead of
coding the disk0 || disk0.0 method it could just mount disk0.0.  Because
the code does this (edited):

partname = asprintf("/dev/%s.0", diskdev);
ret = stat(partname, &s);
if (ret) {
  pr_err("Failed to load environment: no device '%s'\n", diskdev);
  return 0;
}
ret = mount(diskdev, "fat", "/boot", NULL);


If disk0.0 didn't exist then it wouldn't try to mount it in the 1st
place, so the ability of trying both disk0 and disk0.0 wouldn't be used.


More information about the barebox mailing list