All of lore.kernel.org
 help / color / mirror / Atom feed
From: hehuiwen <huiwen.he@linux.dev>
To: Paulo Alcantara <pc@manguebit.org>,
	linkinjeon@kernel.org, ronniesahlberg@gmail.com,
	sprasad@microsoft.com, tom@talpey.com, bharathsm@microsoft.com,
	senozhatsky@chromium.org, dhowells@redhat.com,
	chenxiaosong@kylinos.cn
Cc: linux-cifs@vger.kernel.org
Subject: Re: [PATCH v3 3/7] smb/client: mark file sparse before emulating insert range
Date: Thu, 27 Aug 2026 11:18:01 +0800	[thread overview]
Message-ID: <69832461-b644-42bd-b3f5-b0371a4c2a22@linux.dev> (raw)
In-Reply-To: <8847b8a47388c3d197514e1e477ec65c@manguebit.org>

Thanks. I repeated a controlled A/B test with the same kernel tree,
reverting/restoring only this patch.

Without the patch:

./check -d generic/064
FSTYP         -- cifs
PLATFORM      -- Linux/x86_64 localhost 7.2.0-rc6+ #71 SMP 
PREEMPT_DYNAMIC Tue Aug 25 15:38:06 CST 2026
MKFS_OPTIONS  -- //192.168.10.1/scratch_share
MOUNT_OPTIONS -- -o 
username=smbuser,password=Kylin123,vers=3.1.1,mfsymlinks,noperm 
//192.168.10.1/scratch_share /mnt/scratch

generic/064  2s ... QA output created by 064
Extent count after inserts has value of 1
Extent count after inserts is NOT in range 50 .. 53
- output mismatch (see /src/xfstests-dev/results//generic/064.out.bad)
     --- tests/generic/064.out	2026-05-08 16:46:07.377810776 +0800
     +++ /src/xfstests-dev/results//generic/064.out.bad	2026-08-27 
11:11:58.000000000 +0800
     @@ -1,2 +1,3 @@
      QA output created by 064
     -Extent count after inserts is in range
     +Extent count after inserts has value of 1
     +Extent count after inserts is NOT in range 50 .. 53
     ...
     (Run 'diff -u /src/xfstests-dev/tests/generic/064.out 
/src/xfstests-dev/results//generic/064.out.bad'  to see the entire diff)
Ran: generic/064
Failures: generic/064
Failed 1 of 1 tests
---------------------------------------------------------------

With the patch:

./check -d generic/064
FSTYP         -- cifs
PLATFORM      -- Linux/x86_64 localhost 7.2.0-rc6+ #71 SMP 
PREEMPT_DYNAMIC Tue Aug 25 15:38:06 CST 2026
MKFS_OPTIONS  -- //192.168.10.1/scratch_share
MOUNT_OPTIONS -- -o 
username=smbuser,password=Kylin123,vers=3.1.1,mfsymlinks,noperm 
//192.168.10.1/scratch_share /mnt/scratch

generic/064  2s ... QA output created by 064
Extent count after inserts is in range
  2s
Ran: generic/064
Passed all 1 tests

--------------------------------------------------------------
Server configuration:

     Fedora 43
     Samba 4.23.7-2.fc43
     btrfs backing filesystem
     strict allocate = yes

As noted in the v1 cover letter, the Windows Server result is expected: 
aligned 64 KiB and 128 KiB insert ranges are reported as holes, while 
generic/064 uses 4 KiB inserts, which are below the observed
sparse deallocation granularity on Windows.

Thanks,
Huiwen

在 2026/8/27 10:13, Paulo Alcantara 写道:
> Hi Huiwen,
> 
> Huiwen He <huiwen.he@linux.dev> writes:
> 
>> From: Huiwen He <hehuiwen@kylinos.cn>
>>
>> The SMB client emulates FALLOC_FL_INSERT_RANGE with SET_EOF, COPYCHUNK
>> and SET_ZERO_DATA.
>>
>> SET_ZERO_DATA creates a hole only when the file is sparse. On a
>> non-sparse file, it clears the inserted range but leaves its blocks
>> allocated, causing the extent count check in xfstests generic/064 to
>> fail.
>>
>> Fix this by marking the file sparse before modifying it.
>>
>> Tested with xfstests generic/064 against Samba and ksmbd.
> 
> After applying this patch, generic/064 still fails for me against
> samba-4.24.5-1.fc44.x86_64.  Tested it with both btrfs and xfs, and
> 'strict allocate = yes'.  It also fails against Windows Server 2022.
> 
> SECTION       -- smb3
> FSTYP         -- cifs
> PLATFORM      -- Linux/x86_64 fed 7.2.0 #4 SMP PREEMPT_DYNAMIC Wed Aug 26 21:42:48 -03 2026
> MKFS_OPTIONS  -- //192.168.124.43/scratch2
> MOUNT_OPTIONS -- -ousername=testuser,password=foo-321,vers=3.1.1,mfsymlinks,noperm //192.168.124.43/scratch2 /mnt/scratch
> 
> generic/064        - output mismatch (see /root/g/xfstests/results//smb3/generic/064.out.bad)
>      --- tests/generic/064.out   2024-02-15 10:35:04.361833706 -0300
>      +++ /root/g/xfstests/results//smb3/generic/064.out.bad      2026-08-26 21:58:54.469813041 -0300
>      @@ -1,2 +1,3 @@
>       QA output created by 064
>      -Extent count after inserts is in range
>      +Extent count after inserts has value of 1
>      +Extent count after inserts is NOT in range 50 .. 53
>      ...
>      (Run 'diff -u /root/g/xfstests/tests/generic/064.out /root/g/xfstests/results//smb3/generic/064.out.bad'  to see the entire diff)
> Ran: generic/064
> Failures: generic/064
> Failed 1 of 1 tests
> 
> What am I missing?
> 
> Could you please provide details of your server version and settings?
> 
> Thanks.


  reply	other threads:[~2026-08-27  3:18 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-23 15:10 [PATCH v3 0/7] smb/client: fix fallocate range operation issues Huiwen He
2026-08-23 15:10 ` [PATCH v3 1/7] smb/client: validate new EOF for insert range Huiwen He
2026-08-27  2:07   ` Paulo Alcantara
2026-08-23 15:10 ` [PATCH v3 2/7] smb/client: validate new EOF for zero range Huiwen He
2026-08-27  2:08   ` Paulo Alcantara
2026-08-23 15:10 ` [PATCH v3 3/7] smb/client: mark file sparse before emulating insert range Huiwen He
2026-08-27  2:13   ` Paulo Alcantara
2026-08-27  3:18     ` hehuiwen [this message]
2026-08-23 15:10 ` [PATCH v3 4/7] smb/client: fix data corruption in emulated " Huiwen He
2026-08-27  2:19   ` Paulo Alcantara
2026-08-27 15:45     ` hehuiwen
2026-08-28  1:32       ` Paulo Alcantara
2026-08-23 15:10 ` [PATCH v3 5/7] smb/client: fix integer truncation in collapse range Huiwen He
2026-08-23 15:10 ` [PATCH v3 6/7] smb/client: fix stale page cache in insert/collapse range Huiwen He
2026-08-27  2:20   ` Paulo Alcantara
2026-08-23 15:10 ` [PATCH v3 7/7] smb/client: invalidate fscache for fallocate range operations Huiwen He
2026-08-27  2:20   ` Paulo Alcantara
2026-08-24  2:01 ` [PATCH v3 0/7] smb/client: fix fallocate range operation issues Namjae Jeon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=69832461-b644-42bd-b3f5-b0371a4c2a22@linux.dev \
    --to=huiwen.he@linux.dev \
    --cc=bharathsm@microsoft.com \
    --cc=chenxiaosong@kylinos.cn \
    --cc=dhowells@redhat.com \
    --cc=linkinjeon@kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=pc@manguebit.org \
    --cc=ronniesahlberg@gmail.com \
    --cc=senozhatsky@chromium.org \
    --cc=sprasad@microsoft.com \
    --cc=tom@talpey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.