Re: Odd split writes in fuse when going from kernel 3.10 to 4.18

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 12 Feb 2025 at 21:01, Daphne Shaw <dshaw@xxxxxxxxxxxxxxx> wrote:

> Can anyone help explain why one of the 4000-byte writes is being split into a 96-byte and then 3904-byte write?

Commit 4f06dd92b5d0 ("fuse: fix write deadlock") introduced this
behavior change and has a good description of the problem and the
solution.  Here's an excerpt:

"...serialize the synchronous write with reads from
    the partial pages.  The easiest way to do this is to keep the partial pages
    locked.  The problem is that a write() may involve two such pages (one head
    and one tail).  This patch fixes it by only locking the partial tail page.
    If there's a partial head page as well, then split that off as a separate
    WRITE request."

Your example triggered exactly this "two partial pages" case.

One way out of this is to switch to writeback_cache mode.  Would that
work for your case?

Thanks,
Miklos




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux