]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fs: ext4: use fs_ls_generic
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 26 Oct 2024 06:40:48 +0000 (08:40 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 1 Nov 2024 19:37:58 +0000 (13:37 -0600)
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 <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
fs/ext4/ext4_common.c
fs/ext4/ext4fs.c
fs/fs.c
test/py/tests/test_env.py
test/py/tests/test_fs/test_basic.py

index c1e38978bb990b4181064c4de5800d49cfaa7650..cc150cf824f9fc1f54d9406c88dc1b3df55fa5e2 100644 (file)
@@ -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);
                }
index 32693198aebada0c7d4ae6217593505dd2000afd..dfecfa0b4e8849ed99dc134e8ac8b73c0da999d4 100644 (file)
@@ -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 a515905c4c95a47d13f7cb35b5d8858d79a5b9e1..1afa0fbeaed9bebb5001c6f0587f94b7719ae57c 100644 (file)
--- 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,
index 00bcccd65ff606e6c531f30a55332a7f103bee50..4471db7d9cb2488ae39080912d1b08d5ebf52db7 100644 (file)
@@ -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
index 71f3e86fb18db96f34287d7fc4d71d9c09788c68..b5f4704172a28b213e42a265ce4b3885f18dce97 100644 (file)
@@ -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):
         """