diff options
| -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 735b25641..417ce7b63 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 242938039..aacb147de 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); |