2023-07-19 13:31:20

by Benjamin Coddington

[permalink] [raw]
Subject: Re: [PATCH v2] nfs: fix redundant readdir request after get eof

On 18 Jul 2023, at 8:44, Kinglong Mee wrote:

> When a directory contains 17 files (except . and ..), nfs client sends
> a redundant readdir request after get eof.
>
> A simple reproduce,
> At NFS server, create a directory with 17 files under exported directory.
> # mkdir test
> # cd test
> # for i in {0..16} ; do touch $i; done
>
> At NFS client, no matter mounting through nfsv3 or nfsv4,
> does ls (or ll) at the created test directory.
>
> A tshark output likes following (for nfsv4),
>
> # tshark -i eth0 tcp port 2049 -Tfields -e ip.src -e ip.dst -e nfs -e
> nfs.cookie4
>
> srcip dstip SEQUENCE, PUTFH, READDIR 0
> dstip srcip SEQUENCE PUTFH READDIR
> 909539109313539306,2108391201987888856,2305312124304486544,2566335452463141496,2978225129081509984,4263037479923412583,4304697173036510679,4666703455469210097,4759208201298769007,4776701232145978803,5338408478512081262,5949498658935544804,5971526429894832903,6294060338267709855,6528840566229532529,8600463293536422524,9223372036854775807
> srcip dstip
> srcip dstip SEQUENCE, PUTFH, READDIR 9223372036854775807
> dstip srcip SEQUENCE PUTFH READDIR
>
> The READDIR with cookie 9223372036854775807(0x7FFFFFFFFFFFFFFF) is
> redundant.
>
> Signed-off-by: Kinglong Mee <[email protected]>

Weird, I never got a copy from linux-nfs. The plain-text version of this
is whitespace damaged, but the HTML version looks right.

Reviewed-by: Benjamin Coddington <[email protected]>

Ben



2023-07-20 01:30:32

by Kinglong Mee

[permalink] [raw]
Subject: Re: [PATCH v2] nfs: fix redundant readdir request after get eof



On 2023/7/19 9:24 PM, Benjamin Coddington wrote:
> On 18 Jul 2023, at 8:44, Kinglong Mee wrote:
>
>> When a directory contains 17 files (except . and ..), nfs client sends
>> a redundant readdir request after get eof.
>>
>> A simple reproduce,
>> At NFS server, create a directory with 17 files under exported directory.
>> # mkdir test
>> # cd test
>> # for i in {0..16} ; do touch $i; done
>>
>> At NFS client, no matter mounting through nfsv3 or nfsv4,
>> does ls (or ll) at the created test directory.
>>
>> A tshark output likes following (for nfsv4),
>>
>> # tshark -i eth0 tcp port 2049 -Tfields -e ip.src -e ip.dst -e nfs -e
>> nfs.cookie4
>>
>> srcip dstip SEQUENCE, PUTFH, READDIR 0
>> dstip srcip SEQUENCE PUTFH READDIR
>> 909539109313539306,2108391201987888856,2305312124304486544,2566335452463141496,2978225129081509984,4263037479923412583,4304697173036510679,4666703455469210097,4759208201298769007,4776701232145978803,5338408478512081262,5949498658935544804,5971526429894832903,6294060338267709855,6528840566229532529,8600463293536422524,9223372036854775807
>> srcip dstip
>> srcip dstip SEQUENCE, PUTFH, READDIR 9223372036854775807
>> dstip srcip SEQUENCE PUTFH READDIR
>>
>> The READDIR with cookie 9223372036854775807(0x7FFFFFFFFFFFFFFF) is
>> redundant.
>>
>> Signed-off-by: Kinglong Mee <[email protected]>
>
> Weird, I never got a copy from linux-nfs. The plain-text version of this
> is whitespace damaged, but the HTML version looks right.
>
> Reviewed-by: Benjamin Coddington <[email protected]>

Anna,

Sometimes my email client cannot send email correctly,
so I send this path at web gmail.

Are you OK for this HTML version?
If not, I will resend it through my email client.

thanks,
Kinglong Mee

2023-07-20 21:08:34

by Anna Schumaker

[permalink] [raw]
Subject: Re: [PATCH v2] nfs: fix redundant readdir request after get eof

On Wed, Jul 19, 2023 at 9:14 PM Kinglong Mee <[email protected]> wrote:
>
>
>
> On 2023/7/19 9:24 PM, Benjamin Coddington wrote:
> > On 18 Jul 2023, at 8:44, Kinglong Mee wrote:
> >
> >> When a directory contains 17 files (except . and ..), nfs client sends
> >> a redundant readdir request after get eof.
> >>
> >> A simple reproduce,
> >> At NFS server, create a directory with 17 files under exported directory.
> >> # mkdir test
> >> # cd test
> >> # for i in {0..16} ; do touch $i; done
> >>
> >> At NFS client, no matter mounting through nfsv3 or nfsv4,
> >> does ls (or ll) at the created test directory.
> >>
> >> A tshark output likes following (for nfsv4),
> >>
> >> # tshark -i eth0 tcp port 2049 -Tfields -e ip.src -e ip.dst -e nfs -e
> >> nfs.cookie4
> >>
> >> srcip dstip SEQUENCE, PUTFH, READDIR 0
> >> dstip srcip SEQUENCE PUTFH READDIR
> >> 909539109313539306,2108391201987888856,2305312124304486544,2566335452463141496,2978225129081509984,4263037479923412583,4304697173036510679,4666703455469210097,4759208201298769007,4776701232145978803,5338408478512081262,5949498658935544804,5971526429894832903,6294060338267709855,6528840566229532529,8600463293536422524,9223372036854775807
> >> srcip dstip
> >> srcip dstip SEQUENCE, PUTFH, READDIR 9223372036854775807
> >> dstip srcip SEQUENCE PUTFH READDIR
> >>
> >> The READDIR with cookie 9223372036854775807(0x7FFFFFFFFFFFFFFF) is
> >> redundant.
> >>
> >> Signed-off-by: Kinglong Mee <[email protected]>
> >
> > Weird, I never got a copy from linux-nfs. The plain-text version of this
> > is whitespace damaged, but the HTML version looks right.
> >
> > Reviewed-by: Benjamin Coddington <[email protected]>
>
> Anna,
>
> Sometimes my email client cannot send email correctly,
> so I send this path at web gmail.

Ah, I bet that's why `b4 shazam` is having trouble finding the patch
if I go to apply it.

>
> Are you OK for this HTML version?
> If not, I will resend it through my email client.

What email client are you using? I've had good luck using
Documentation/process/email-clients.rst for setting up clients to send
and receive patches. Have you tried using `git send-email` at all? It
would be great if you can repost a plain-text version instead of html.

Thanks,
Anna
>
> thanks,
> Kinglong Mee

2023-07-21 01:42:30

by Kinglong Mee

[permalink] [raw]
Subject: Re: [PATCH v2] nfs: fix redundant readdir request after get eof



On 2023/7/21 4:56 AM, Anna Schumaker wrote:
> On Wed, Jul 19, 2023 at 9:14 PM Kinglong Mee <[email protected]> wrote:
>> On 2023/7/19 9:24 PM, Benjamin Coddington wrote:
>>> On 18 Jul 2023, at 8:44, Kinglong Mee wrote:
>>>
>>>> When a directory contains 17 files (except . and ..), nfs client sends
>>>> a redundant readdir request after get eof.
>>>>
>>>> A simple reproduce,
>>>> At NFS server, create a directory with 17 files under exported directory.
>>>> # mkdir test
>>>> # cd test
>>>> # for i in {0..16} ; do touch $i; done
>>>>
>>>> At NFS client, no matter mounting through nfsv3 or nfsv4,
>>>> does ls (or ll) at the created test directory.
>>>>
>>>> A tshark output likes following (for nfsv4),
>>>>
>>>> # tshark -i eth0 tcp port 2049 -Tfields -e ip.src -e ip.dst -e nfs -e
>>>> nfs.cookie4
>>>>
>>>> srcip dstip SEQUENCE, PUTFH, READDIR 0
>>>> dstip srcip SEQUENCE PUTFH READDIR
>>>> 909539109313539306,2108391201987888856,2305312124304486544,2566335452463141496,2978225129081509984,4263037479923412583,4304697173036510679,4666703455469210097,4759208201298769007,4776701232145978803,5338408478512081262,5949498658935544804,5971526429894832903,6294060338267709855,6528840566229532529,8600463293536422524,9223372036854775807
>>>> srcip dstip
>>>> srcip dstip SEQUENCE, PUTFH, READDIR 9223372036854775807
>>>> dstip srcip SEQUENCE PUTFH READDIR
>>>>
>>>> The READDIR with cookie 9223372036854775807(0x7FFFFFFFFFFFFFFF) is
>>>> redundant.
>>>>
>>>> Signed-off-by: Kinglong Mee <[email protected]>
>>>
>>> Weird, I never got a copy from linux-nfs. The plain-text version of this
>>> is whitespace damaged, but the HTML version looks right.
>>>
>>> Reviewed-by: Benjamin Coddington <[email protected]>
>>
>> Anna,
>>
>> Sometimes my email client cannot send email correctly,
>> so I send this path at web gmail.
>
> Ah, I bet that's why `b4 shazam` is having trouble finding the patch
> if I go to apply it.
>
>>
>> Are you OK for this HTML version?
>> If not, I will resend it through my email client.
>
> What email client are you using? I've had good luck using
> Documentation/process/email-clients.rst for setting up clients to send
> and receive patches. Have you tried using `git send-email` at all?

I use Thunderbird client.
Thanks for your advise, I will try using `git send-email`.

> It
> would be great if you can repost a plain-text version instead of html.

A new plain-text version path have been resend.

thanks,
Kinglong Mee