
Hi Tom
On Sun, Nov 3, 2024 at 12:26 AM Tom Rini trini@konsulko.com wrote:
On Sat, 26 Oct 2024 08:40:43 +0200, Heinrich Schuchardt wrote:
With this series opendir, readdir, closedir are implemented for ext4. These functions are needed for the UEFI sub-system to interact with the ext4 file system.
To reduce code growth the functions are reused to implement the ls command for ext4.
[...]
Applied to local tree/v2-tidy-test-dir, thanks!
Am I sleeping?
int ext4fs_opendir(const char *dirname, struct fs_dir_stream **dirsp) { struct ext4_dir_stream *dirs = NULL; struct ext2fs_node *dir = NULL; int ret;
*dirsp = NULL;
dirs = calloc(1, sizeof(struct ext4_dir_stream)); if (!dirs) return -ENOMEM;
dirs->dirname = strdup(dirname); if (!dirs->dirname) { free(dirs); return -ENOMEM; }
ret = ext4fs_find_file(dirname, &ext4fs_root->diropen, &dir, FILETYPE_DIRECTORY);
if (ret == 1) { ret = 0; *dirsp = (struct fs_dir_stream *)dirs; } else { ret = -ENOENT; free(dirs->dirname); free(dirs); }
if (dir) ext4fs_free_node(dir, &ext4fs_root->diropen);
return ret; }
Should not be like this?
-- Tom