Now that opendir, readir, closedir are implemented for ext4 we can use
fs_ls_generic() for implementing the ls command.

Adjust the unit tests:

* fs_ls_generic() produces more spaces between file size and name.
* The ext4 specific message "** Can not find directory. **\n" is not
  written anymore.

Signed-off-by: Heinrich Schuchardt <[email protected]>
---
 fs/ext4/ext4_common.c               | 29 -----------------------------
 fs/ext4/ext4fs.c                    | 23 -----------------------
 fs/fs.c                             |  2 +-
 test/py/tests/test_env.py           |  2 +-
 test/py/tests/test_fs/test_basic.py |  5 +----
 5 files changed, 3 insertions(+), 58 deletions(-)

diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
index c1e38978bb9..cc150cf824f 100644
--- a/fs/ext4/ext4_common.c
+++ b/fs/ext4/ext4_common.c
@@ -2137,35 +2137,6 @@ int ext4fs_iterate_dir(struct ext2fs_node *dir, char 
*name,
                                        *fnode = fdiro;
                                        return 1;
                                }
-                       } else {
-                               if (fdiro->inode_read == 0) {
-                                       status = ext4fs_read_inode(dir->data,
-                                                                  le32_to_cpu(
-                                                                  
dirent.inode),
-                                                                  
&fdiro->inode);
-                                       if (status == 0) {
-                                               free(fdiro);
-                                               return 0;
-                                       }
-                                       fdiro->inode_read = 1;
-                               }
-                               switch (type) {
-                               case FILETYPE_DIRECTORY:
-                                       printf("<DIR> ");
-                                       break;
-                               case FILETYPE_SYMLINK:
-                                       printf("<SYM> ");
-                                       break;
-                               case FILETYPE_REG:
-                                       printf("      ");
-                                       break;
-                               default:
-                                       printf("< ? > ");
-                                       break;
-                               }
-                               printf("%10u %s\n",
-                                      le32_to_cpu(fdiro->inode.size),
-                                       filename);
                        }
                        free(fdiro);
                }
diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
index 32693198aeb..dfecfa0b4e8 100644
--- a/fs/ext4/ext4fs.c
+++ b/fs/ext4/ext4fs.c
@@ -201,29 +201,6 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
        return 0;
 }
 
-int ext4fs_ls(const char *dirname)
-{
-       struct ext2fs_node *dirnode = NULL;
-       int status;
-
-       if (dirname == NULL)
-               return 0;
-
-       status = ext4fs_find_file(dirname, &ext4fs_root->diropen, &dirnode,
-                                 FILETYPE_DIRECTORY);
-       if (status != 1) {
-               printf("** Can not find directory. **\n");
-               if (dirnode)
-                       ext4fs_free_node(dirnode, &ext4fs_root->diropen);
-               return 1;
-       }
-
-       ext4fs_iterate_dir(dirnode, NULL, NULL, NULL);
-       ext4fs_free_node(dirnode, &ext4fs_root->diropen);
-
-       return 0;
-}
-
 int ext4fs_opendir(const char *dirname, struct fs_dir_stream **dirsp)
 {
        struct ext4_dir_stream *dirs;
diff --git a/fs/fs.c b/fs/fs.c
index a515905c4c9..1afa0fbeaed 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -220,7 +220,7 @@ static struct fstype_info fstypes[] = {
                .null_dev_desc_ok = false,
                .probe = ext4fs_probe,
                .close = ext4fs_close,
-               .ls = ext4fs_ls,
+               .ls = fs_ls_generic,
                .exists = ext4fs_exists,
                .size = ext4fs_size,
                .read = ext4_read_file,
diff --git a/test/py/tests/test_env.py b/test/py/tests/test_env.py
index 00bcccd65ff..4471db7d9cb 100644
--- a/test/py/tests/test_env.py
+++ b/test/py/tests/test_env.py
@@ -488,7 +488,7 @@ def test_env_ext4(state_test_env):
         assert 'Loading Environment from EXT4... OK' in response
 
         response = c.run_command('ext4ls host 0:0')
-        assert '8192 uboot.env' in response
+        assert '8192   uboot.env' in response
 
         response = c.run_command('env info')
         assert 'env_valid = valid' in response
diff --git a/test/py/tests/test_fs/test_basic.py 
b/test/py/tests/test_fs/test_basic.py
index 71f3e86fb18..b5f4704172a 100644
--- a/test/py/tests/test_fs/test_basic.py
+++ b/test/py/tests/test_fs/test_basic.py
@@ -33,10 +33,7 @@ class TestFsBasic(object):
             # In addition, test with a nonexistent directory to see if we 
crash.
             output = u_boot_console.run_command(
                 '%sls host 0:0 invalid_d' % fs_type)
-            if fs_type == 'ext4':
-                assert('Can not find directory' in output)
-            else:
-                assert('' == output)
+            assert('' == output)
 
     def test_fs2(self, u_boot_console, fs_obj_basic):
         """
-- 
2.45.2

Reply via email to