ext4: detect directories in ext4fs_exists()

While fat_exists() reports directories and files as existing
ext4fs_exists() only recognizes files. This lead to errors
when using systemd-boot with an ext4 file-system.

Change ext4fs_exists() to find any type of inode:
files, directories, symbolic links.

Fixes: a1596438a689 ("ext4fs ls load support")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
index 3b12ec5..33e200f 100644
--- a/fs/ext4/ext4fs.c
+++ b/fs/ext4/ext4fs.c
@@ -208,11 +208,14 @@
 
 int ext4fs_exists(const char *filename)
 {
-	loff_t file_len;
-	int ret;
+	struct ext2fs_node *dirnode = NULL;
+	int filetype;
+
+	if (!filename)
+		return 0;
 
-	ret = ext4fs_open(filename, &file_len);
-	return ret == 0;
+	return ext4fs_find_file1(filename, &ext4fs_root->diropen, &dirnode,
+				 &filetype);
 }
 
 int ext4fs_size(const char *filename, loff_t *size)