summaryrefslogtreecommitdiffstats
path: root/0011-ext4-implement-exists-for-ext4fs.patch
diff options
context:
space:
mode:
Diffstat (limited to '0011-ext4-implement-exists-for-ext4fs.patch')
-rw-r--r--0011-ext4-implement-exists-for-ext4fs.patch63
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
+