
On 06/10/2014 09:29 PM, Josh Wu wrote:
On 6/11/2014 6:43 AM, Stephen Warren wrote:
Commit 95fac6ab4589 "sandbox: Use os functions to read host device tree" removed the ability for get_device_and_partition() to handle the "host" device type, and redirect accesses to it to the host filesystem. This broke some unit tests that use this feature. So, revert that change. The code added back by this patch is slightly different to pacify checkpatch.
However, we're then left with "host" being both:
- A pseudo device that accesses the hosts real filesystem.
- An emulated block device, which accesses "sectors" inside a file stored on the host.
In order to resolve this discrepancy, rename the pseudo device from host to hostfs, and adjust the unit-tests for this change.
diff --git a/disk/part.c b/disk/part.c
- /*
* Special-case a psuedo block device "hostfs", to allow access
to the
* host's own filesystem.
*/
Do we need to change the sb ls help message from 'host' to 'hostfs' as well?
Yes.
- if (0 == strcmp(ifname, "hostfs")) {
*dev_desc = NULL;
info->start = = 0;
a typo. one additional '='.
Indeed. I guess I forgot to recompile after fixing checkpatch:-/
diff --git a/test/command_ut.c b/test/command_ut.c
@@ -165,12 +165,12 @@ static int do_ut_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #ifdef CONFIG_SANDBOX /* File existence */
- HUSH_TEST(e, "-e host -
creating_this_file_breaks_uboot_unit_test", n);
- run_command("sb save host -
creating_this_file_breaks_uboot_unit_test 0 1", 0);
- HUSH_TEST(e, "-e host -
creating_this_file_breaks_uboot_unit_test", y);
- HUSH_TEST(e, "-e hostfs -
creating_this_file_breaks_uboot_unit_test", n);
There still has a odd behavior: at first, when we run 'sb load host 0 200000 /home/env.sh', it will show '** Bad device host 0 **' but after use 'sb bind 0 test.img', then above command can work well.
"sb load" works fine for me on *hostfs*:
=> sb ls hostfs - /boot ... 176764 memtest86+.bin ... => sb load hostfs - 0 /boot/memtest86+.bin 176764 bytes read in 29 ms (5.8 MiB/s)
I'm not sure if "sb load" on "host" is expected to work; "host" is an emulated block device that works just like any other block device, i.e. without using the "sb" comamnd, so I'd expect it to be used with plain old ls/fatls/extls, load/fatload/ext2load/, ...
IMHO, we need use 'host' and 'hostfs' for different usage. suck like: 'host' interface means host block device that we use 'sb bind'. 'hostfs' interface means host file system
That's what this patch should provide.