ext2fs_file_write() needs to update i_size on successful write,
otherwise, ext2fs_file_read() in same open/close cycle will not
be able to read the just written data.
Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Change-Id: I7ec7d1fcd5e9a355ca0a4399e5e937f853f0a612
unsigned int nbytes, unsigned int *written)
{
ext2_filsys fs;
- errcode_t retval = 0;
+ errcode_t retval = 0, rc;
unsigned int start, c, count = 0;
const char *ptr = (const char *) buf;
}
fail:
+ /* Update inode size */
+ if (count != 0 && EXT2_I_SIZE(&file->inode) < file->pos) {
+ rc = ext2fs_file_set_size2(file, file->pos);
+ if (retval == 0)
+ retval = rc;
+ }
+
if (written)
*written = count;
return retval;