mirror of https://github.com/vitalif/e2fsprogs
libext2fs: update i_size in ext2fs_file_write()
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. This fixes a bug which results in the the problem of quotacheck triggered on 'tune2fs -O quota' failed to write back multiple users/groups accounting information. Signed-off-by: Niu Yawei <yawei.niu@intel.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>debian-1.42.9
parent
a25487cbaf
commit
470ca046b1
|
@ -307,6 +307,15 @@ errcode_t ext2fs_file_write(ext2_file_t file, const void *buf,
|
||||||
}
|
}
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
/* Update inode size */
|
||||||
|
if (count != 0 && EXT2_I_SIZE(&file->inode) < file->pos) {
|
||||||
|
errcode_t rc;
|
||||||
|
|
||||||
|
rc = ext2fs_file_set_size2(file, file->pos);
|
||||||
|
if (retval == 0)
|
||||||
|
retval = rc;
|
||||||
|
}
|
||||||
|
|
||||||
if (written)
|
if (written)
|
||||||
*written = count;
|
*written = count;
|
||||||
return retval;
|
return retval;
|
||||||
|
|
Loading…
Reference in New Issue