Bug 219648
Summary: | Losetup Direct I/O breaks BACK-FILE filesystem on CIFS share (Appears in Linux 6.10 and reproduced on mainline) | ||
---|---|---|---|
Product: | File System | Reporter: | Nicolas BARANGER (nicolas.baranger) |
Component: | Other | Assignee: | fs_other |
Status: | RESOLVED CODE_FIX | ||
Severity: | blocking | CC: | ddiss.dev, dhowells |
Priority: | P3 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | from Linux 6.10 to mainline | Subsystem: | |
Regression: | Yes | Bisected commit-id: | not before kernel 6.9.12 but present from kernel 6.10 to mainline |
Description
Nicolas BARANGER
2025-01-01 10:34:45 UTC
Thanks for the report. Can you provide your cifs.ko mount options? It looks as though the netfs is module throwing I/O errors, which results in the higher level device / Btrfs error messages: 36 ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len, 37 struct iov_iter *new, 38 iov_iter_extraction_t extraction_flags) 39 { 40 struct bio_vec *bv = NULL; 41 struct page **pages; 42 unsigned int cur_npages; 43 unsigned int max_pages; 44 unsigned int npages = 0; 45 unsigned int i; 46 ssize_t ret; 47 size_t count = orig_len, offset, len; 48 size_t bv_size, pg_size; 49 50 if (WARN_ON_ONCE(!iter_is_ubuf(orig) && !iter_is_iovec(orig))) 51 return -EIO; ^^^^---- here Hi Here are information you asked : $ lsmod | grep cifs cifs 1474560 2 cifs_arc4 12288 1 cifs nls_ucs2_utils 8192 1 cifs cifs_md4 12288 1 cifs dns_resolver 12288 1 cifs netfs 569344 1 cifs $ grep cifs /proc/mounts //10.0.10.100/FBX24T /mnt/FBX24T cifs rw,nosuid,nodev,noexec,relatime,vers=3.1.1,cache=none,username=fbx,domain=HOMELAN,uid=0,noforceuid,gid=0,noforcegid,addr=10.0.10.100,file_mode=0666,dir_mode=0755,iocharset=utf8,soft,nounix,serverino,mapposix,mfsymlinks,reparse=nfs,rsize=65536,wsize=65536,bsize=16777216,retrans=1,echo_interval=60,actimeo=1,closetimeo=1 0 0 Don't you think the new way CIFS makes its IO in Linux 6.10 through NETFS could be part of the issue ? $ git log --pretty=oneline v6.9.12..v6.10 | grep cifs: | grep netfs 3ee1a1fc39819906f04d6c62c180e760cd3a689d cifs: Cut over to using netfslib 69c3c023af25edb5433a2db824d3e7cc328f0183 cifs: Implement netfslib hooks dc5939de82f149633d6ec1c403003538442ec9ef cifs: Replace the writedata replay bool with a netfs sreq flag ab58fbdeebc7f9fe8b9bc202660eae3a10e5e678 cifs: Use more fields from netfs_io_subrequest a975a2f22cdce7ec0c678ce8d73d2f6616cb281c cifs: Replace cifs_writedata with a wrapper around netfs_io_subrequest 753b67eb630db34e36ec4ae1e86c75e243ea4fc9 cifs: Replace cifs_readdata with a wrapper around netfs_io_subrequest Thanks again for help Kind regards Nicolas Baranger Hi This regression had been fixed and patch had been merged to mainline (Linux 6.13-rc7). You can follow the story here: https://lore.kernel.org/all/14271ed82a5be7fcc5ceea5f68a10bbd@manguebit.com/T/ I'm switching this issue status to "RESOLVED" Again thanks everyone for help Nicolas Baranger |