diff options
Diffstat (limited to '0011-ext4-implement-exists-for-ext4fs.patch')
-rw-r--r-- | 0011-ext4-implement-exists-for-ext4fs.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/0011-ext4-implement-exists-for-ext4fs.patch b/0011-ext4-implement-exists-for-ext4fs.patch new file mode 100644 index 0000000..34efb79 --- /dev/null +++ b/0011-ext4-implement-exists-for-ext4fs.patch @@ -0,0 +1,63 @@ +From 53799c2c610f43e9be3aeefcee00977aed7d736b Mon Sep 17 00:00:00 2001 +From: Stephen Warren <swarren@nvidia.com> +Date: Thu, 23 Jan 2014 12:56:59 -0700 +Subject: [PATCH 11/13] 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> +--- + fs/ext4/ext4fs.c | 8 ++++++++ + fs/fs.c | 2 +- + include/ext4fs.h | 1 + + 3 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c +index 735b256..71ecdd8 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) ? 0 : 1; ++} ++ + int ext4fs_read(char *buf, unsigned len) + { + if (ext4fs_root == NULL || ext4fs_file == NULL) +diff --git a/fs/fs.c b/fs/fs.c +index 4f344c6..3f14d01 100644 +--- a/fs/fs.c ++++ b/fs/fs.c +@@ -91,7 +91,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); +-- +1.8.5.3 + |