In the current implementation, set_blk_dev() is called in opening a file,
but not in opening a directory. This will cause failures at succeeding
directory operations as the "current" block device remains nullified.
Adding set_blk_dev() fixes this issue.

Signed-off-by: AKASHI Takahiro <takahiro.aka...@linaro.org>
---
 lib/efi_loader/efi_file.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/efi_loader/efi_file.c b/lib/efi_loader/efi_file.c
index 140116ddc4ac..ba55b2829e03 100644
--- a/lib/efi_loader/efi_file.c
+++ b/lib/efi_loader/efi_file.c
@@ -235,6 +235,9 @@ static struct efi_file_handle *file_open(struct file_system 
*fs,
        } else {
                fh->isdir = 1;
                strcpy(fh->path, "");
+
+               if (set_blk_dev(fh))
+                       goto error;
        }
 
        return &fh->base;
-- 
2.24.0

Reply via email to