mbox series

[v3,0/2] exfat: get file size from DataLength

Message ID PUZPR04MB6316C51D022473DD0D54120D81FCA@PUZPR04MB6316.apcprd04.prod.outlook.com (mailing list archive)
Headers show
Series exfat: get file size from DataLength | expand

Message

Yuezhang.Mo@sony.com Sept. 25, 2023, 5:29 a.m. UTC
From the exFAT specification, the file size should get from 'DataLength'
of Stream Extension Directory Entry, not 'ValidDataLength'.

Without this patch set, 'DataLength' is always same with 'ValidDataLength'
and get file size from 'ValidDataLength'. If the file is created by other
exFAT implementation and 'DataLength' is different from 'ValidDataLength',
this exFAT implementation will not be compatible.

Changes for v3:
  - Rebase to linux-6.6
  - Move update ->valid_size from exfat_file_write_iter() to exfat_write_end()
  - Use block_write_begin() instead of exfat_write_begin() in exfat_file_zeroed_range()
  - Remove exfat_expand_and_zero()

Changes for v2:
  - Fix race when checking i_size on direct i/o read

Yuezhang Mo (2):
  exfat: change to get file size from DataLength
  exfat: do not zeroed the extended part

 fs/exfat/exfat_fs.h |   4 +
 fs/exfat/file.c     | 198 +++++++++++++++++++++++++++++++++++++++-----
 fs/exfat/inode.c    | 108 ++++++++++++++++++++----
 fs/exfat/namei.c    |   6 ++
 4 files changed, 280 insertions(+), 36 deletions(-)