X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=fs%2Fext4%2Fext4_write.c;h=e027916763f9b52937c7fe13f1698b67b94eb901;hb=3e4dad50320d20894710276eb09f2057c6985065;hp=c42add9a7ea95d09543b4938d42668ed03128e73;hpb=e7d4a88e69459547a46906dbe021ccc83c614361;p=u-boot diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c index c42add9a7e..e027916763 100644 --- a/fs/ext4/ext4_write.c +++ b/fs/ext4/ext4_write.c @@ -23,6 +23,7 @@ #include +#include #include #include #include "ext4_common.h" @@ -840,7 +841,7 @@ int ext4fs_write(const char *fname, unsigned char *buffer, unsigned int ibmap_idx; struct ext_filesystem *fs = get_fs(); ALLOC_CACHE_ALIGN_BUFFER(char, filename, 256); - memset(filename, 0x00, sizeof(filename)); + memset(filename, 0x00, 256); g_parent_inode = zalloc(sizeof(struct ext2_inode)); if (!g_parent_inode) @@ -975,3 +976,29 @@ fail: return -1; } + +int ext4_write_file(const char *filename, void *buf, loff_t offset, + loff_t len, loff_t *actwrite) +{ + int ret; + + if (offset != 0) { + printf("** Cannot support non-zero offset **\n"); + return -1; + } + + ret = ext4fs_write(filename, buf, len); + if (ret) { + printf("** Error ext4fs_write() **\n"); + goto fail; + } + + *actwrite = len; + + return 0; + +fail: + *actwrite = 0; + + return -1; +}