From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Qu Wenruo <wqu@suse.com>,
Anand Jain <asj@kernel.org>, Filipe Manana <fdmanana@suse.com>,
David Sterba <dsterba@suse.com>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 094/119] btrfs: truncate ordered extent when skipping writeback past i_size
Date: Thu, 15 Jan 2026 17:48:29 +0100 [thread overview]
Message-ID: <20260115164155.344722727@linuxfoundation.org> (raw)
In-Reply-To: <20260115164151.948839306@linuxfoundation.org>
6.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Filipe Manana <fdmanana@suse.com>
[ Upstream commit 18de34daa7c62c830be533aace6b7c271e8e95cf ]
While running test case btrfs/192 from fstests with support for large
folios (needs CONFIG_BTRFS_EXPERIMENTAL=y) I ended up getting very sporadic
btrfs check failures reporting that csum items were missing. Looking into
the issue it turned out that btrfs check searches for csum items of a file
extent item with a range that spans beyond the i_size of a file and we
don't have any, because the kernel's writeback code skips submitting bios
for ranges beyond eof. It's not expected however to find a file extent item
that crosses the rounded up (by the sector size) i_size value, but there is
a short time window where we can end up with a transaction commit leaving
this small inconsistency between the i_size and the last file extent item.
Example btrfs check output when this happens:
$ btrfs check /dev/sdc
Opening filesystem to check...
Checking filesystem on /dev/sdc
UUID: 69642c61-5efb-4367-aa31-cdfd4067f713
[1/8] checking log skipped (none written)
[2/8] checking root items
[3/8] checking extents
[4/8] checking free space tree
[5/8] checking fs roots
root 5 inode 332 errors 1000, some csum missing
ERROR: errors found in fs roots
(...)
Looking at a tree dump of the fs tree (root 5) for inode 332 we have:
$ btrfs inspect-internal dump-tree -t 5 /dev/sdc
(...)
item 28 key (332 INODE_ITEM 0) itemoff 2006 itemsize 160
generation 17 transid 19 size 610969 nbytes 86016
block group 0 mode 100666 links 1 uid 0 gid 0 rdev 0
sequence 11 flags 0x0(none)
atime 1759851068.391327881 (2025-10-07 16:31:08)
ctime 1759851068.410098267 (2025-10-07 16:31:08)
mtime 1759851068.410098267 (2025-10-07 16:31:08)
otime 1759851068.391327881 (2025-10-07 16:31:08)
item 29 key (332 INODE_REF 340) itemoff 1993 itemsize 13
index 2 namelen 3 name: f1f
item 30 key (332 EXTENT_DATA 589824) itemoff 1940 itemsize 53
generation 19 type 1 (regular)
extent data disk byte 21745664 nr 65536
extent data offset 0 nr 65536 ram 65536
extent compression 0 (none)
(...)
We can see that the file extent item for file offset 589824 has a length of
64K and its number of bytes is 64K. Looking at the inode item we see that
its i_size is 610969 bytes which falls within the range of that file extent
item [589824, 655360[.
Looking into the csum tree:
$ btrfs inspect-internal dump-tree /dev/sdc
(...)
item 15 key (EXTENT_CSUM EXTENT_CSUM 21565440) itemoff 991 itemsize 200
range start 21565440 end 21770240 length 204800
item 16 key (EXTENT_CSUM EXTENT_CSUM 1104576512) itemoff 983 itemsize 8
range start 1104576512 end 1104584704 length 8192
(..)
We see that the csum item number 15 covers the first 24K of the file extent
item - it ends at offset 21770240 and the extent's disk_bytenr is 21745664,
so we have:
21770240 - 21745664 = 24K
We see that the next csum item (number 16) is completely outside the range,
so the remaining 40K of the extent doesn't have csum items in the tree.
If we round up the i_size to the sector size, we get:
round_up(610969, 4096) = 614400
If we subtract from that the file offset for the extent item we get:
614400 - 589824 = 24K
So the missing 40K corresponds to the end of the file extent item's range
minus the rounded up i_size:
655360 - 614400 = 40K
Normally we don't expect a file extent item to span over the rounded up
i_size of an inode, since when truncating, doing hole punching and other
operations that trim a file extent item, the number of bytes is adjusted.
There is however a short time window where the kernel can end up,
temporarily,persisting an inode with an i_size that falls in the middle of
the last file extent item and the file extent item was not yet trimmed (its
number of bytes reduced so that it doesn't cross i_size rounded up by the
sector size).
The steps (in the kernel) that lead to such scenario are the following:
1) We have inode I as an empty file, no allocated extents, i_size is 0;
2) A buffered write is done for file range [589824, 655360[ (length of
64K) and the i_size is updated to 655360. Note that we got a single
large folio for the range (64K);
3) A truncate operation starts that reduces the inode's i_size down to
610969 bytes. The truncate sets the inode's new i_size at
btrfs_setsize() by calling truncate_setsize() and before calling
btrfs_truncate();
4) At btrfs_truncate() we trigger writeback for the range starting at
610304 (which is the new i_size rounded down to the sector size) and
ending at (u64)-1;
5) During the writeback, at extent_write_cache_pages(), we get from the
call to filemap_get_folios_tag(), the 64K folio that starts at file
offset 589824 since it contains the start offset of the writeback
range (610304);
6) At writepage_delalloc() we find the whole range of the folio is dirty
and therefore we run delalloc for that 64K range ([589824, 655360[),
reserving a 64K extent, creating an ordered extent, etc;
7) At extent_writepage_io() we submit IO only for subrange [589824, 614400[
because the inode's i_size is 610969 bytes (rounded up by sector size
is 614400). There, in the while loop we intentionally skip IO beyond
i_size to avoid any unnecessay work and just call
btrfs_mark_ordered_io_finished() for the range [614400, 655360[ (which
has a 40K length);
8) Once the IO finishes we finish the ordered extent by ending up at
btrfs_finish_one_ordered(), join transaction N, insert a file extent
item in the inode's subvolume tree for file offset 589824 with a number
of bytes of 64K, and update the inode's delayed inode item or directly
the inode item with a call to btrfs_update_inode_fallback(), which
results in storing the new i_size of 610969 bytes;
9) Transaction N is committed either by the transaction kthread or some
other task committed it (in response to a sync or fsync for example).
At this point we have inode I persisted with an i_size of 610969 bytes
and file extent item that starts at file offset 589824 and has a number
of bytes of 64K, ending at an offset of 655360 which is beyond the
i_size rounded up to the sector size (614400).
--> So after a crash or power failure here, the btrfs check program
reports that error about missing checksum items for this inode, as
it tries to lookup for checksums covering the whole range of the
extent;
10) Only after transaction N is committed that at btrfs_truncate() the
call to btrfs_start_transaction() starts a new transaction, N + 1,
instead of joining transaction N. And it's with transaction N + 1 that
it calls btrfs_truncate_inode_items() which updates the file extent
item at file offset 589824 to reduce its number of bytes from 64K down
to 24K, so that the file extent item's range ends at the i_size
rounded up to the sector size (614400 bytes).
Fix this by truncating the ordered extent at extent_writepage_io() when we
skip writeback because the current offset in the folio is beyond i_size.
This ensures we don't ever persist a file extent item with a number of
bytes beyond the rounded up (by sector size) value of the i_size.
Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Anand Jain <asj@kernel.org>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Stable-dep-of: e9e3b22ddfa7 ("btrfs: fix beyond-EOF write handling")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/extent_io.c | 21 +++++++++++++++++++--
fs/btrfs/ordered-data.c | 5 +++--
2 files changed, 22 insertions(+), 4 deletions(-)
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -1499,13 +1499,13 @@ static noinline_for_stack int extent_wri
bool submitted_io = false;
int found_error = 0;
const u64 folio_start = folio_pos(folio);
+ const u64 folio_end = folio_start + folio_size(folio);
const unsigned int blocks_per_folio = btrfs_blocks_per_folio(fs_info, folio);
u64 cur;
int bit;
int ret = 0;
- ASSERT(start >= folio_start &&
- start + len <= folio_start + folio_size(folio));
+ ASSERT(start >= folio_start && start + len <= folio_end);
ret = btrfs_writepage_cow_fixup(folio);
if (ret) {
@@ -1526,6 +1526,23 @@ static noinline_for_stack int extent_wri
cur = folio_pos(folio) + (bit << fs_info->sectorsize_bits);
if (cur >= i_size) {
+ struct btrfs_ordered_extent *ordered;
+ unsigned long flags;
+
+ ordered = btrfs_lookup_first_ordered_range(inode, cur,
+ folio_end - cur);
+ /*
+ * We have just run delalloc before getting here, so
+ * there must be an ordered extent.
+ */
+ ASSERT(ordered != NULL);
+ spin_lock_irqsave(&inode->ordered_tree_lock, flags);
+ set_bit(BTRFS_ORDERED_TRUNCATED, &ordered->flags);
+ ordered->truncated_len = min(ordered->truncated_len,
+ cur - ordered->file_offset);
+ spin_unlock_irqrestore(&inode->ordered_tree_lock, flags);
+ btrfs_put_ordered_extent(ordered);
+
btrfs_mark_ordered_io_finished(inode, folio, cur,
start + len - cur, true);
/*
--- a/fs/btrfs/ordered-data.c
+++ b/fs/btrfs/ordered-data.c
@@ -1080,8 +1080,9 @@ struct btrfs_ordered_extent *btrfs_looku
struct rb_node *prev;
struct rb_node *next;
struct btrfs_ordered_extent *entry = NULL;
+ unsigned long flags;
- spin_lock_irq(&inode->ordered_tree_lock);
+ spin_lock_irqsave(&inode->ordered_tree_lock, flags);
node = inode->ordered_tree.rb_node;
/*
* Here we don't want to use tree_search() which will use tree->last
@@ -1136,7 +1137,7 @@ out:
trace_btrfs_ordered_extent_lookup_first_range(inode, entry);
}
- spin_unlock_irq(&inode->ordered_tree_lock);
+ spin_unlock_irqrestore(&inode->ordered_tree_lock, flags);
return entry;
}
next prev parent reply other threads:[~2026-01-15 17:04 UTC|newest]
Thread overview: 134+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-15 16:46 [PATCH 6.12 000/119] 6.12.66-rc1 review Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 001/119] NFSD: Fix permission check for read access to executable-only files Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 002/119] nfsd: provide locking for v4_end_grace Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 003/119] nfsd: use correct loop termination in nfsd4_revoke_states() Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 004/119] nfsd: check that server is running in unlock_filesystem Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 005/119] NFSD: net ref data still needs to be freed even if net hasnt startup Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 006/119] NFSD: Remove NFSERR_EAGAIN Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 007/119] atm: Fix dma_free_coherent() size Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 008/119] net: 3com: 3c59x: fix possible null dereference in vortex_probe1() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 009/119] arm64: Fix cleared E0POE bit after cpu_suspend()/resume() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 010/119] btrfs: always detect conflicting inodes when logging inode refs Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 011/119] mei: me: add nova lake point S DID Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 012/119] lib/crypto: aes: Fix missing MMU protection for AES S-box Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 013/119] counter: 104-quad-8: Fix incorrect return value in IRQ handler Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 014/119] counter: interrupt-cnt: Drop IRQF_NO_THREAD flag Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 015/119] drm/amdgpu: Fix query for VPE block_type and ip_count Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 016/119] drm/pl111: Fix error handling in pl111_amba_probe Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 017/119] drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[] Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 018/119] gpio: rockchip: mark the GPIO controller as sleeping Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 019/119] pinctrl: qcom: lpass-lpi: " Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 020/119] wifi: avoid kernel-infoleak from struct iw_point Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 021/119] wifi: mac80211: restore non-chanctx injection behaviour Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 022/119] libceph: prevent potential out-of-bounds reads in handle_auth_done() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 023/119] libceph: replace overzealous BUG_ON in osdmap_apply_incremental() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 024/119] libceph: make free_choose_arg_map() resilient to partial allocation Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 025/119] libceph: return the handler error from mon_handle_auth_done() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 026/119] libceph: reset sparse-read state in osd_fault() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 027/119] libceph: make calc_target() set t->paused, not just clear it Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 028/119] tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 029/119] drm/xe: make xe_gt_idle_disable_c6() handle the forcewake internally Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 030/119] drm/xe: Ensure GT is in C0 during resumes Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 031/119] csky: fix csky_cmpxchg_fixup not working Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 032/119] ARM: 9461/1: Disable HIGHPTE on PREEMPT_RT kernels Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 033/119] alpha: dont reference obsolete termio struct for TC* constants Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 034/119] dm-snapshot: fix scheduling while atomic on real-time kernels Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 035/119] NFSv4: ensure the open stateid seqid doesnt go backwards Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 036/119] ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again) Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 037/119] NFS: Fix up the automount fs_context to use the correct cred Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 038/119] drm/amd/display: shrink struct members Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 039/119] smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 040/119] smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 041/119] smb/client: fix NT_STATUS_NO_DATA_DETECTED value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 042/119] scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 043/119] scsi: ufs: core: Fix EH failure after W-LUN resume error Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 044/119] scsi: Revert "scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed" Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 045/119] btrfs: fix qgroup_snapshot_quick_inherit() squota bug Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 046/119] btrfs: qgroup: update all parent qgroups when doing quick inherit Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 047/119] btrfs: tracepoints: use btrfs_root_id() to get the id of a root Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 048/119] btrfs: fix NULL dereference on root when tracing inode eviction Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 049/119] drm/amd/display: Respect users CONFIG_FRAME_WARN more for dml files Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 050/119] drm/amd/display: Apply e4479aecf658 to dml Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 051/119] arm64: dts: ti: k3-am62-lp-sk-nand: Rename pinctrls to fix schema warnings Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 052/119] crypto: qat - fix duplicate restarting msg during AER error Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 053/119] arm64: dts: add off-on-delay-us for usdhc2 regulator Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 054/119] ARM: dts: imx6q-ba16: fix RTC interrupt level Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 055/119] arm64: dts: imx8mp: Fix LAN8740Ai PHY reference clock on DH electronics i.MX8M Plus DHCOM Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 056/119] arm64: dts: imx8qm-ss-dma: correct the dma channels of lpuart Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 057/119] arm64: dts: mba8mx: Fix Ethernet PHY IRQ support Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 058/119] netfilter: nft_set_pipapo: fix range overlap detection Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 059/119] netfilter: nft_synproxy: avoid possible data-race on update operation Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 060/119] gpio: pca953x: Add support for level-triggered interrupts Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 061/119] gpio: pca953x: handle short interrupt pulses on PCAL devices Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 062/119] netfilter: nf_tables: fix memory leak in nf_tables_newrule() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 063/119] netfilter: nf_conncount: update last_gc only when GC has been performed Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 064/119] net: marvell: prestera: fix NULL dereference on devlink_alloc() failure Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 065/119] bridge: fix C-VLAN preservation in 802.1ad vlan_tunnel egress Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 066/119] net: mscc: ocelot: Fix crash when adding interface under a lag Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 067/119] inet: ping: Fix icmp out counting Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 068/119] net: sock: fix hardened usercopy panic in sock_recv_errqueue Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 069/119] netdev: preserve NETIF_F_ALL_FOR_ALL across TSO updates Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 070/119] net/mlx5e: Dont print error message due to invalid module Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 071/119] net: wwan: iosm: Fix memory leak in ipc_mux_deinit() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 072/119] bnxt_en: Fix potential data corruption with HW GRO/LRO Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 073/119] vsock: Make accept()ed sockets use custom setsockopt() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 074/119] btrfs: only enforce free space tree if v1 cache is required for bs < ps cases Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 075/119] riscv: pgtable: Cleanup useless VA_USER_XXX definitions Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 076/119] net: fix memory leak in skb_segment_list for GRO packets Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 077/119] idpf: keep the netdev when a reset fails Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 078/119] idpf: fix memory leak in idpf_vport_rel() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 079/119] idpf: cap maximum Rx buffer size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 080/119] net: netdevsim: fix inconsistent carrier state after link/unlink Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 081/119] HID: quirks: work around VID/PID conflict for appledisplay Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 082/119] net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 083/119] net: usb: pegasus: fix memory leak in update_eth_regs_async() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 084/119] net: enetc: fix build warning when PAGE_SIZE is greater than 128K Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 085/119] arp: do not assume dev_hard_header() does not change skb->head Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 086/119] erofs: dont bother with s_stack_depth increasing for now Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 087/119] erofs: fix file-backed mounts no longer working on EROFS partitions Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 088/119] ALSA: ac97bus: Use guard() for mutex locks Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 089/119] ALSA: ac97: fix a double free in snd_ac97_controller_register() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 090/119] btrfs: fix error handling of submit_uncompressed_range() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 091/119] btrfs: subpage: dump the involved bitmap when ASSERT() failed Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 092/119] btrfs: add extra error messages for delalloc range related errors Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 093/119] btrfs: remove btrfs_fs_info::sectors_per_page Greg Kroah-Hartman
2026-01-15 16:48 ` Greg Kroah-Hartman [this message]
2026-01-15 16:48 ` [PATCH 6.12 095/119] btrfs: use variable for end offset in extent_writepage_io() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 096/119] btrfs: fix beyond-EOF write handling Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 097/119] bpf: Fix an issue in bpf_prog_test_run_xdp when page size greater than 4K Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 098/119] bpf: Make variables in bpf_prog_test_run_xdp less confusing Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 099/119] bpf: Support specifying linear xdp packet data size for BPF_PROG_TEST_RUN Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 100/119] bpf, test_run: Subtract size of xdp_frame from allowed metadata size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 101/119] bpf: Fix reference count leak in bpf_prog_test_run_xdp() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 102/119] net: sfp: extend Potron XGSPON quirk to cover additional EEPROM variant Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 103/119] powercap: fix race condition in register_control_type() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 104/119] powercap: fix sscanf() error return value handling Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 105/119] netfilter: nf_tables: avoid chain re-validation if possible Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 106/119] ata: libata-core: Disable LPM on ST2000DM008-2FR102 Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 107/119] drm/amd/display: Fix DP no audio issue Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 108/119] spi: mt65xx: Use IRQF_ONESHOT with threaded IRQ Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 109/119] drm/amdkfd: Fix improper NULL termination of queue restore SMI event string Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 110/119] can: j1939: make j1939_session_activate() fail if device is no longer registered Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 111/119] ALSA: usb-audio: Update for native DSD support quirks Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 112/119] ASoC: amd: yc: Add quirk for Honor MagicBook X16 2025 Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 113/119] ALSA: hda/realtek: enable woofer speakers on Medion NM14LNL Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 114/119] ASoC: fsl_sai: Add missing registers to cache default Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 115/119] scsi: sg: Fix occasional bogus elapsed time that exceeds timeout Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 116/119] spi: cadence-quadspi: Prevent lost complete() call during indirect read Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 117/119] tpm2-sessions: Fix out of range indexing in name_size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 118/119] ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 119/119] bpf: test_run: Fix ctx leak in bpf_prog_test_run_xdp error path Greg Kroah-Hartman
2026-01-15 19:15 ` [PATCH 6.12 000/119] 6.12.66-rc1 review Brett A C Sheffield
2026-01-15 19:58 ` Slade Watkins
2026-01-15 21:34 ` Francesco Dolcini
2026-01-15 22:42 ` Shuah Khan
2026-01-15 23:18 ` Florian Fainelli
2026-01-16 10:03 ` Ron Economos
2026-01-16 10:33 ` Jon Hunter
2026-01-16 11:23 ` Peter Schneider
2026-01-16 15:37 ` Harshit Mogalapalli
2026-01-16 17:48 ` Hardik Garg
2026-01-16 19:18 ` Mark Brown
2026-01-16 21:58 ` Brett Mastbergen
2026-01-17 14:42 ` Miguel Ojeda
2026-01-19 11:23 ` Jeffrin Thalakkottoor
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=20260115164155.344722727@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=asj@kernel.org \
--cc=dsterba@suse.com \
--cc=fdmanana@suse.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=wqu@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox