Re: [PATCH v8 5/5] smb/client: refresh allocation after EOF-extending fallocate

hehuiwen <[email protected]> Thu, 30 Jul 2026 10:17:36 +0800
Newsgroups org.kernel.vger.linux-cifs
Message-ID <[email protected]>
Hi Paulo,

Thanks for the report.

The generic/103 failure is expected because it allocates almost all free 
space. Using separate filesystems for the test and scratch shares avoids it.

I have reproduced the generic/590 failure and am investigating it.

Thanks,
Huiwen


在 2026/7/30 06:54, Paulo Alcantara 写道:
> Huiwen He <[email protected]> writes:
> 
>> From: Huiwen He <[email protected]>
>>
>> Before this change, xfstests generic/496 was not supported on ksmbd:
>>
>>          generic/496 ... [not run] fallocated swap not supported here
>>
>> ksmbd handles SetEOF as truncate, so EOF extension alone does not
>> allocate backing blocks. A fallocated swapfile can therefore still
>> look sparse to swapon.
>>
>> Request allocation for EOF-extending fallocate ranges that can be
>> represented by FILE_ALLOCATION_INFORMATION, and refresh the allocation
>> state afterwards.
>>
>> With this change, xfstests generic/496 and generic/701 pass on ksmbd.
>>
>> However, Samba "strict allocate = no" now exposes the real generic/701
>> failure: the old pass came from inflated local i_blocks, not from
>> server allocation. generic/213 also fails in that case because an
>> oversized allocation request may not return ENOSPC.
>>
>> Signed-off-by: Huiwen He <[email protected]>
>> Reviewed-by: ChenXiaoSong <[email protected]>
> 
> This patch regressed fstests generic/103 and generic/590 against samba
> 4.24 (strict allocate = yes) with a 15G xfs partition for both test and
> scratch shares.  The tests now fail with -ENOSPC.
> 
> A simple reproducer
> 
> 	$ mount.cifs //samba-fs0/scratch2 /mnt/1 -o username=xxx,password=yyy
>          $ df -h /mnt/1
> 	Filesystem            Size  Used Avail Use% Mounted on
> 	//samba-fs0/scratch2   15G  326M   15G   3% /mnt/1
> 	$ xfs_io -c "falloc 0 8G" -f /mnt/1/file
> 	fallocate: No space left on device