mbox series

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

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

Message

Yuezhang.Mo@sony.com June 15, 2023, 3: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'. But if the file is created by other
exFAT implementation and 'DataLength' is different from 'ValidDataLength',
this exFAT implementation will not be compatible.

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

 fs/exfat/exfat_fs.h |   2 +
 fs/exfat/file.c     | 212 +++++++++++++++++++++++++++++++++++++++++++-
 fs/exfat/inode.c    | 108 +++++++++++++++++++---
 fs/exfat/namei.c    |   7 +-
 4 files changed, 310 insertions(+), 19 deletions(-)

Comments

Namjae Jeon June 22, 2023, 6:47 a.m. UTC | #1
2023-06-15 12:29 GMT+09:00, Yuezhang.Mo@sony.com <Yuezhang.Mo@sony.com>:
> 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'. But if the file is created by
> other
> exFAT implementation and 'DataLength' is different from 'ValidDataLength',
> this exFAT implementation will not be compatible.
>
> Yuezhang Mo (2):
>   exfat: change to get file size from DataLength
>   exfat: do not zeroed the extended part
Hi Yuezhang,

First, Thank you so much for your work.
Have you ever run xfstests against exfat included this changes ?

Thanks!

>
>  fs/exfat/exfat_fs.h |   2 +
>  fs/exfat/file.c     | 212 +++++++++++++++++++++++++++++++++++++++++++-
>  fs/exfat/inode.c    | 108 +++++++++++++++++++---
>  fs/exfat/namei.c    |   7 +-
>  4 files changed, 310 insertions(+), 19 deletions(-)
>
Yuezhang.Mo@sony.com June 25, 2023, 6:29 a.m. UTC | #2
> From: Namjae Jeon <linkinjeon@kernel.org>
> Sent: Thursday, June 22, 2023 2:48 PM
> 2023-06-15 12:29 GMT+09:00, Yuezhang.Mo@sony.com
> > Yuezhang Mo (2):
> >   exfat: change to get file size from DataLength
> >   exfat: do not zeroed the extended part
> Hi Yuezhang,
> 
> First, Thank you so much for your work.
> Have you ever run xfstests against exfat included this changes ?

Yes, all generic/??? tests of xfstests pass, except generic /251.
Are there any tests that fail in your environment?
Yuezhang.Mo@sony.com June 26, 2023, 8:45 a.m. UTC | #3
> From: Mo, Yuezhang
> Sent: Sunday, June 25, 2023 2:29 PM
> > From: Namjae Jeon <linkinjeon@kernel.org>
> > First, Thank you so much for your work.
> > Have you ever run xfstests against exfat included this changes ?
> 
> Yes, all generic/??? tests of xfstests pass, except generic/251.
> Are there any tests that fail in your environment?

I run xfstests iteratively and found generic/465 will sometimes fail, the probability of failure is 1/20.
I will investigate it and update these patches.

PS: generic/251 also fails without these patches, the reason is `cp -a` fails.
Namjae Jeon June 26, 2023, 12:37 p.m. UTC | #4
2023-06-26 17:45 GMT+09:00, Yuezhang.Mo@sony.com <Yuezhang.Mo@sony.com>:
>> From: Mo, Yuezhang
>> Sent: Sunday, June 25, 2023 2:29 PM
>> > From: Namjae Jeon <linkinjeon@kernel.org>
>> > First, Thank you so much for your work.
>> > Have you ever run xfstests against exfat included this changes ?
>>
>> Yes, all generic/??? tests of xfstests pass, except generic/251.
>> Are there any tests that fail in your environment?
>
> I run xfstests iteratively and found generic/465 will sometimes fail, the
> probability of failure is 1/20.
> I will investigate it and update these patches.
Okay.
>
> PS: generic/251 also fails without these patches, the reason is `cp -a`
> fails.
I will check it.

Thanks!
>