Hi Maik,

On Mon, Feb 23, 2026 at 03:39:36PM +0100, Maik Nergert wrote:
> Package: src:linux
> Version: 6.1.162-1
> Severity: normal
> 
> Dear Maintainer,
> 
> after upgrading from Linux 6.1.158 to 6.1.162, NFS client writes fail with 
> input/output errors (EIO).
> 
> Environment:
> - Debian Bookworm
> - Kernel: 6.1.0-43-amd64 (6.1.162-1)
> - NFSv4.2 (also reproducible with 4.1)
> - Default mount options include rsize=1048576,wsize=1048576
> 
> Reproducer:
> dd if=/dev/zero of=~/testfile bs=1M count=500
> or 
> dd if=/dev/zero of=~/testfile bs=4k count=100000
> 
> On different computers and VMs!
> 
> 
> Result:
> dd: closing output file: Input/output error
> 
> Workaround:
> Mount with:
> rsize=65536,wsize=65536
> 
> With reduced I/O size, the issue disappears completely.
> 
> Impact:
> - File writes fail (file >1M)
> - KDE Plasma crashes due to corrupted cache/config writes
> 
> The issue does NOT occur on kernel 6.1.0-42 (6.1.158).

Thanks for your report. I'm currently not able to reproduce it with:

# echo 1048576 > /proc/fs/nfsd/max_block_size
# systemctl restart nfs-server.service
# mount -t nfs -o rsize=1048576,wsize=1048576 127.0.0.1:/srv/data /mnt

127.0.0.1:/srv/data /mnt nfs4 
rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1
 0 0

root@bookworm-amd64:/mnt# dd if=/dev/zero of=testfile bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB, 391 MiB) copied, 0.861692 s, 475 MB/s
root@bookworm-amd64:/mnt# dd if=/dev/zero of=testfile bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 0.907189 s, 578 MB/s
root@bookworm-amd64:/mnt# uname -a
Linux bookworm-amd64 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 
(2026-02-08) x86_64 GNU/Linux
root@bookworm-amd64:/mnt#

Is automounting involved in your case?

I will try bit harder to reproduce, since it seems reliably for you,
might you be able to bisect the issue please? 

    git clone --single-branch -b linux-6.1.y 
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
    cd linux-stable
    git checkout v6.1.158
    cp /boot/config-$(uname -r) .config
    yes '' | make localmodconfig
    make savedefconfig
    mv defconfig arch/x86/configs/my_defconfig

    # test 6.1.158 to ensure this is "good"
    make my_defconfig
    make -j $(nproc) bindeb-pkg
    ... install the resulting .deb package and confirm the problem does not 
exists.

    # test 6.1.162 to ensure this is "bad"
    git checkout v6.1.162
    make my_defconfig
    make -j $(nproc) bindeb-pkg
    ... install the resulting .deb package and confirm problem exists.

With that confirmed, the bisection can start:

    git bisect start
    git bisect good v6.1.158
    git bisect bad v6.1.162

In each bisection step git checks out a state between the oldest
known-bad and the newest known-good commit. In each step test using:

    make my_defconfig
    make -j $(nproc) bindeb-pkg
    ... install, try to boot / verify if problem exists

and if the problem is hit run:

    git bisect bad

and if the problem doesn't trigger run:

    git bisect good

. Please pay attention to always select the just built kernel for
booting, it won't always be the default kernel picked up by grub.

Iterate until git announces to have identified the first bad commit.

Then provide the output of

    git bisect log

In the course of the bisection you might have to uninstall previous
kernels again to not exhaust the disk space in /boot. Also in the end
uninstall all self-built kernels again.

Thank you already!

Regards,
Salvatore

Reply via email to