e55ef91f9d
- use _smp_mflags
64 lines
1.9 KiB
Diff
64 lines
1.9 KiB
Diff
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
|
|
|