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.
next prev parent 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.