diff options
author | Stephen Warren <swarren@nvidia.com> | 2014-02-03 13:21:09 -0700 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-02-19 09:47:34 -0500 |
commit | 55af5c9313607f3b6acba2fd915b263ef6a61dd4 (patch) | |
tree | 95dd692ed9c7c22357c77e2315cb92cd235f8dc3 | |
parent | 89ba42d18303d06d49ca14de2d46c82bbdcad06c (diff) | |
download | u-boot-imx-55af5c9313607f3b6acba2fd915b263ef6a61dd4.zip u-boot-imx-55af5c9313607f3b6acba2fd915b263ef6a61dd4.tar.gz u-boot-imx-55af5c9313607f3b6acba2fd915b263ef6a61dd4.tar.bz2 |
ext4: implement exists() for ext4fs
This hooks into the generic "file exists" support added in an earlier
patch, and provides an implementation for the ext4 filesystem.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | fs/ext4/ext4fs.c | 8 | ||||
-rw-r--r-- | fs/fs.c | 2 | ||||
-rw-r--r-- | include/ext4fs.h | 1 |
3 files changed, 10 insertions, 1 deletions
diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c index 735b256..417ce7b 100644 --- a/fs/ext4/ext4fs.c +++ b/fs/ext4/ext4fs.c @@ -174,6 +174,14 @@ int ext4fs_ls(const char *dirname) return 0; } +int ext4fs_exists(const char *filename) +{ + int file_len; + + file_len = ext4fs_open(filename); + return file_len >= 0; +} + int ext4fs_read(char *buf, unsigned len) { if (ext4fs_root == NULL || ext4fs_file == NULL) @@ -102,7 +102,7 @@ static struct fstype_info fstypes[] = { .probe = ext4fs_probe, .close = ext4fs_close, .ls = ext4fs_ls, - .exists = fs_exists_unsupported, + .exists = ext4fs_exists, .read = ext4_read_file, .write = fs_write_unsupported, }, diff --git a/include/ext4fs.h b/include/ext4fs.h index 2429380..aacb147 100644 --- a/include/ext4fs.h +++ b/include/ext4fs.h @@ -134,6 +134,7 @@ int ext4fs_read(char *buf, unsigned len); int ext4fs_mount(unsigned part_length); void ext4fs_close(void); int ext4fs_ls(const char *dirname); +int ext4fs_exists(const char *filename); void ext4fs_free_node(struct ext2fs_node *node, struct ext2fs_node *currroot); int ext4fs_devread(lbaint_t sector, int byte_offset, int byte_len, char *buf); void ext4fs_set_blk_dev(block_dev_desc_t *rbdd, disk_partition_t *info); |