public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Paulo Alcantara <pc@manguebit.org>,
	Shyam Prasad N <sprasad@microsoft.com>,
	David Howells <dhowells@redhat.com>,
	linux-cifs@vger.kernel.org, Steve French <stfrench@microsoft.com>,
	Sasha Levin <sashal@kernel.org>,
	sfrench@samba.org, samba-technical@lists.samba.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 6.19-6.18] smb: client: fix generic/694 due to wrong ->i_blocks
Date: Tue, 24 Mar 2026 07:19:17 -0400	[thread overview]
Message-ID: <20260324111931.3257972-8-sashal@kernel.org> (raw)
In-Reply-To: <20260324111931.3257972-1-sashal@kernel.org>

From: Paulo Alcantara <pc@manguebit.org>

[ Upstream commit 23b5df09c27aec13962b30d32a4167ebdd043f8e ]

When updating ->i_size, make sure to always update ->i_blocks as well
until we query new allocation size from the server.

generic/694 was failing because smb3_simple_falloc() was missing the
update of ->i_blocks after calling cifs_setsize().  So, fix this by
updating ->i_blocks directly in cifs_setsize(), so all places that
call it doesn't need to worry about updating ->i_blocks later.

Reported-by: Shyam Prasad N <sprasad@microsoft.com>
Closes: https://lore.kernel.org/r/CANT5p=rqgRwaADB=b_PhJkqXjtfq3SFv41SSTXSVEHnuh871pA@mail.gmail.com
Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Cc: David Howells <dhowells@redhat.com>
Cc: linux-cifs@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

Now I have enough information for a comprehensive analysis.

---

## PHASE 1: COMMIT MESSAGE FORENSICS

### Step 1.1: PARSE THE SUBJECT LINE
Record: [subsystem: smb: client] [action verb: fix] [Fixes xfstests
generic/694 test failure due to incorrect i_blocks reporting]

### Step 1.2: PARSE ALL COMMIT MESSAGE TAGS
- **Reported-by:** Shyam Prasad N <sprasad@microsoft.com> — Microsoft
  SMB developer; this is a real, reproducible bug
- **Closes:** link to lore.kernel.org bug report email
- **Signed-off-by:** Paulo Alcantara (Red Hat) — CIFS subsystem co-
  maintainer
- **Cc:** David Howells (netfs maintainer), linux-cifs@vger.kernel.org
- **Signed-off-by:** Steve French — CIFS maintainer (committed the
  patch)
- No Fixes: tag, no Cc: stable tag (expected for commits under review)

Record: Reported by a Microsoft SMB developer (Shyam Prasad N). Fixed by
CIFS co-maintainer Paulo Alcantara. Committed by CIFS maintainer Steve
French. Original bug report CC'd stable@vger.kernel.org.

### Step 1.3: ANALYZE THE COMMIT BODY TEXT
The commit explains: When `->i_size` is updated, `->i_blocks` must also
be updated to reflect a consistent estimate of allocated blocks until
the server provides actual allocation sizes. `smb3_simple_falloc()` was
calling `cifs_setsize()` without updating `i_blocks`, causing xfstests
`generic/694` to fail (stat() returning wrong block count).

The fix moves the i_blocks update into `cifs_setsize()` itself, so ALL
callers (not just some) keep i_blocks consistent.

Record: [Bug: stat() returns wrong i_blocks after file size changes via
fallocate/truncate] [Symptom: xfstests generic/694 failure] [Root cause:
missing i_blocks update in cifs_setsize(), callers inconsistently
handled it]

### Step 1.4: DETECT HIDDEN BUG FIXES
This is explicitly labeled as a fix and clearly is one. No hidden nature
here.

Record: [Explicitly a bug fix]

---

## PHASE 2: DIFF ANALYSIS — LINE BY LINE

### Step 2.1: INVENTORY THE CHANGES
| File | Changes |
|------|---------|
| fs/smb/client/cifsglob.h | +6 (new `CIFS_INO_BLOCKS` macro) |
| fs/smb/client/file.c | -1 (remove redundant `inode->i_blocks = 0` from
`cifs_do_truncate`) |
| fs/smb/client/inode.c | +5/-13 (centralize i_blocks into
`cifs_setsize()`, use macro in `cifs_fattr_to_inode`) |
| fs/smb/client/smb2ops.c | +5/-24 (use macro in `smb2_close_getattr`,
remove redundant updates in `cifs_file_set_size` and
`smb2_duplicate_extents`) |

Net: +16/-32 = -16 lines. The fix reduces total code by consolidating
duplicated logic.

Functions modified: `cifs_fattr_to_inode()`, `cifs_do_truncate()`,
`cifs_setsize()`, `cifs_file_set_size()`, `smb2_close_getattr()`,
`smb2_duplicate_extents()`

Record: [4 files, net -16 lines] [Scope: single-subsystem consolidation
fix]

### Step 2.2: UNDERSTAND THE CODE FLOW CHANGE
1. **cifsglob.h**: Adds `CIFS_INO_BLOCKS(size)` =
   `DIV_ROUND_UP_ULL((u64)(size), 512)` — standardizes the block count
   calculation
2. **cifs_setsize()**: Now sets `inode->i_blocks =
   CIFS_INO_BLOCKS(offset)` inside the spinlock, alongside
   `i_size_write()`
3. **cifs_do_truncate()**: Removes now-redundant `inode->i_blocks = 0`
   after `cifs_setsize(inode, 0)` (cifs_setsize now handles it)
4. **cifs_file_set_size()**: Removes duplicate i_blocks calculation
   after `cifs_setsize()` call
5. **smb2_close_getattr()**: Uses `CIFS_INO_BLOCKS()` macro instead of
   manual calculation
6. **smb2_duplicate_extents()**: Removes comment about needing to set
   i_blocks — cifs_setsize now handles it
7. **cifs_fattr_to_inode()**: Uses `CIFS_INO_BLOCKS()` macro, cleaner
   comment

Record: [Before: i_blocks updated inconsistently in some callers,
missing in others (smb3_simple_falloc)] [After: i_blocks always updated
when i_size changes via cifs_setsize()]

### Step 2.3: IDENTIFY THE BUG MECHANISM
Category: **Logic/correctness fix** — missing metadata update in a
central function, causing inconsistent stat() results.

The bug: `cifs_setsize()` updated `i_size` but not `i_blocks`. Some
callers (like `cifs_file_set_size/cifs_setattr_nounix`) manually updated
`i_blocks` afterward, but other callers (like `smb3_simple_falloc`,
`smb2_duplicate_extents`) did NOT. This meant fallocate operations left
stale `i_blocks` values.

Record: [Missing i_blocks update in cifs_setsize(); inconsistently
handled by callers; smb3_simple_falloc was the concrete failure path]

### Step 2.4: ASSESS THE FIX QUALITY
- **Obviously correct?** YES — moving i_blocks into cifs_setsize() under
  the existing spinlock is the right approach
- **Minimal/surgical?** YES — consolidates duplicated code while fixing
  the bug
- **Regression risk?** Very low — the only semantic change is that
  `i_blocks` is now also set in paths that previously missed it. For
  paths that already set it, there's a harmless double-set
  (cifs_fattr_to_inode uses server-provided `cf_bytes` which may differ
  from `offset`-based estimate, and its update comes from a different
  code path)
- **Note:** `CIFS_INO_BLOCKS` uses `DIV_ROUND_UP_ULL` which is
  equivalent to `(512 - 1 + size) >> 9` but cleaner

Record: [Fix is obviously correct, minimal, low regression risk]

---

## PHASE 3: GIT HISTORY INVESTIGATION

### Step 3.1: BLAME THE CHANGED LINES
The `cifs_setsize()` function was introduced by Steve French in 2007
(commit 3677db10a635a3). The i_blocks patterns in `cifs_fattr_to_inode`
have been present since at least v3.x. The bug has existed since
`smb3_simple_falloc` was added.

Record: [Core function from 2007; i_blocks bug exists since
smb3_simple_falloc was introduced]

### Step 3.2: FOLLOW THE FIXES: TAG
No Fixes: tag present (expected).

### Step 3.3: CHECK FILE HISTORY FOR RELATED CHANGES
Recent related commits by Paulo Alcantara include several SMB client
fixes in the same 6.19 timeframe:
- `110fee6b9bb58` — refactored cifs_setattr into cifs_file_set_size (Oct
  2025)
- `dba9f997c9d9a` — fixed race with fallocate and AIO+DIO
- `57ce9f7793b71` — fixed missing timestamp updates after ftruncate

The current commit depends on `110fee6b9bb58` for the
`cifs_file_set_size()` function and `cifs_do_truncate()` function in
file.c.

Record: [Depends on 110fee6b9bb58 for
cifs_file_set_size/cifs_do_truncate code structure. The conceptual fix
(adding i_blocks to cifs_setsize) is standalone.]

### Step 3.4: CHECK THE AUTHOR'S OTHER COMMITS
Paulo Alcantara is the CIFS/SMB client co-maintainer at Red Hat. He's
the most active contributor to this subsystem. High trust in the fix.

Record: [Author is subsystem co-maintainer]

### Step 3.5: CHECK FOR DEPENDENT/PREREQUISITE COMMITS
The `cifs_file_set_size()` function that this commit modifies was
introduced by `110fee6b9bb58` (v6.19/7.0 era). This function doesn't
exist in v6.12 or earlier. However, the equivalent code
(`cifs_setattr_nounix()`) exists in v6.12 and has the same bug pattern
(i_blocks updated after cifs_setsize, not inside it).

The `cifs_do_truncate()` function in file.c was also
introduced/refactored by `110fee6b9bb58`.

Record: [Direct apply requires 110fee6b9bb58; for older stable trees
(6.12, 6.6, 6.1), the patch needs adaptation but the core fix applies]

---

## PHASE 4: MAILING LIST AND EXTERNAL RESEARCH

### Step 4.1: LORE DISCUSSION
The patch was submitted as v1 on 2026-03-19, updated to v2 the same day
(v2 moved i_blocks under spinlock, improved comments). No NAKs or
objections found. No explicit stable nomination by reviewers on-list,
but the original bug report by Shyam CC'd stable@vger.kernel.org.

Record: [v2 submitted, clean discussion, no objections, merged into
7.0-rc5]

### Step 4.2: BUG REPORT
Shyam Prasad N (Microsoft SMB developer) discovered the issue while
running xfstests generic/694 test. The test preallocates/writes a file,
syncs, stats for allocated blocks, unmount/remount, and stats again.
Without this fix, stat() reports 0 blocks. Steve French acknowledged:
"That sounds an important bug to fix."

Record: [Reproducible via standard xfstests; acknowledged as important
by maintainer]

### Step 4.3-4.4: RELATED PATCHES AND STABLE HISTORY
Part of a 3-fix pull request to Linus for 7.0-rc5. No prior stable
discussion about this specific issue found.

Record: [Standalone fix, not dependent on the other patches in the pull
request]

---

## PHASE 5: CODE SEMANTIC ANALYSIS

### Step 5.1-5.2: KEY FUNCTIONS AND CALLERS
`cifs_setsize()` is called from 4 places:
1. `cifs_do_truncate()` (file.c:1000) — truncation path
2. `cifs_file_set_size()` (inode.c:3083) — setattr/truncate path
3. `smb2_duplicate_extents()` (smb2ops.c:2209) — reflink/clone path
4. `smb3_simple_falloc()` (smb2ops.c:3676) — fallocate extending path

Before this fix, only #1 and #2 updated i_blocks after calling
cifs_setsize(). #3 and #4 did NOT — these are the bug paths.

Record: [4 callers; 2 had missing i_blocks update; all are user-
reachable via truncate/fallocate/reflink syscalls]

### Step 5.3-5.5: CALL CHAIN AND SIMILAR PATTERNS
The buggy paths are reachable from:
- `fallocate(2)` syscall → `smb3_fallocate()` → `smb3_simple_falloc()` →
  `cifs_setsize()` — i_blocks NOT updated (BUG)
- `ioctl(FICLONERANGE)` → `smb2_duplicate_extents()` → `cifs_setsize()`
  — i_blocks NOT updated (BUG)

Both are standard user operations on SMB-mounted filesystems.

Record: [Bug reachable from userspace via fallocate and reflink;
standard filesystem operations]

---

## PHASE 6: CROSS-REFERENCING AND STABLE TREE ANALYSIS

### Step 6.1: DOES THE BUGGY CODE EXIST IN STABLE TREES?
Verified: In v6.6 and v6.12, `smb3_simple_falloc()` calls
`cifs_setsize()` without updating `i_blocks`. The bug exists in ALL
active stable trees.

### Step 6.2: BACKPORT COMPLICATIONS
The patch won't apply cleanly to v6.12 or earlier because:
- `cifs_file_set_size()` doesn't exist (was `cifs_setattr_nounix()`)
- `cifs_do_truncate()` doesn't exist in file.c
- Some context lines differ

However, the core fix (adding i_blocks to cifs_setsize + introducing the
macro) is straightforward to adapt.

Record: [Needs rework for v6.12 and earlier; core concept portable]

### Step 6.3: NO RELATED FIXES ALREADY IN STABLE
No prior fix for this specific issue found in any stable tree.

---

## PHASE 7: SUBSYSTEM AND MAINTAINER CONTEXT

### Step 7.1: SUBSYSTEM CRITICALITY
SMB/CIFS client (fs/smb/client/) — IMPORTANT. Used by millions of Linux
systems for network file sharing with Windows/Samba servers. Enterprise,
NAS, and developer environments.

Record: [Subsystem: CIFS/SMB client] [Criticality: IMPORTANT — widely
used filesystem]

### Step 7.2: SUBSYSTEM ACTIVITY
Very actively maintained — 20+ commits in recent history, active
bugfixing by Paulo Alcantara and others.

---

## PHASE 8: IMPACT AND RISK ASSESSMENT

### Step 8.1: WHO IS AFFECTED
All SMB/CIFS client users who use fallocate, reflink, or check file
block counts. Affects any mount using SMB2/3.

### Step 8.2: TRIGGER CONDITIONS
- fallocate(2) on SMB-mounted file that extends the file
- Any stat(2) after such operation → reports wrong i_blocks
- Common usage: tools that check disk usage (du, df), xfstests, backup
  software

Record: [Common trigger conditions; any user of fallocate on SMB mounts]

### Step 8.3: FAILURE MODE SEVERITY
- **No crash, no data corruption, no security issue**
- Incorrect metadata: stat() returns wrong block count
- Can mislead disk usage tools and cause test failures
- Severity: **MEDIUM** — data correctness issue in file metadata

Record: [Severity: MEDIUM — incorrect stat metadata, not
crash/corruption]

### Step 8.4: RISK-BENEFIT RATIO
- **Benefit:** Fixes incorrect file metadata for all SMB users using
  fallocate; fixes xfstests generic/694
- **Risk:** Very low — consolidates existing code, net code reduction,
  well-contained within single subsystem
- **Ratio:** Favorable — low risk, medium-high benefit

---

## PHASE 9: FINAL SYNTHESIS

### Step 9.1: COMPILE THE EVIDENCE

**FOR backporting:**
- Fixes a real, reproducible bug (xfstests generic/694 failure)
- Fixes incorrect stat() results for all SMB fallocate users
- Reported by Microsoft SMB developer, acknowledged as important by
  maintainer
- Fix by subsystem co-maintainer
- Small scope (-16 net lines), well-contained
- Consolidates duplicated code (reduces maintenance burden)
- Bug exists in all active stable trees
- Original bug report CC'd stable@vger.kernel.org

**AGAINST backporting:**
- Severity is MEDIUM, not CRITICAL (incorrect metadata, not
  crash/corruption)
- Needs rework for older stable trees (dependency on 110fee6b9bb58)
- Touches 4 files across the subsystem

### Step 9.2: STABLE RULES CHECKLIST
1. Obviously correct and tested? **YES** — fix is clearly correct,
   tested via xfstests
2. Fixes a real bug? **YES** — wrong i_blocks in stat()
3. Important issue? **YES (MEDIUM)** — data correctness for a widely
   used filesystem
4. Small and contained? **YES** — net -16 lines, single subsystem
5. No new features? **YES** — no new features
6. Can apply to stable? **Needs adaptation** for older trees

### Step 9.3: CHECK FOR EXCEPTION CATEGORIES
Not an exception category — standard bug fix.

### Step 9.4: DECISION
The fix addresses a real, reproducible bug in the SMB client that causes
incorrect stat() results. It's small, well-contained, written by the
subsystem co-maintainer, and reduces code duplication. The original bug
reporter CC'd stable. While it needs adaptation for older trees, the
conceptual fix is straightforward.

---

## Verification

- [Phase 1] Parsed tags: Reported-by Shyam Prasad N (Microsoft), Closes:
  lore link, SOB Paulo Alcantara (CIFS co-maintainer), committed by
  Steve French (CIFS maintainer)
- [Phase 2] Diff analysis: 4 files, +16/-32 lines, centralizes i_blocks
  update into cifs_setsize(), introduces CIFS_INO_BLOCKS macro
- [Phase 3] git blame: cifs_setsize() from 2007 (3677db10a635a3);
  i_blocks bug since smb3_simple_falloc was added
- [Phase 3] git log: confirmed 110fee6b9bb58 refactored cifs_setattr
  into cifs_file_set_size (dependency)
- [Phase 3] git log author: Paulo Alcantara is the most active CIFS
  contributor, subsystem co-maintainer
- [Phase 4] Lore research: v2 patch, merged without objections into
  7.0-rc5; Steve French called it "an important bug to fix"
- [Phase 5] Callers of cifs_setsize: 4 call sites verified
  (cifs_do_truncate, cifs_file_set_size, smb2_duplicate_extents,
  smb3_simple_falloc)
- [Phase 5] Verified smb3_simple_falloc (line 3676) and
  smb2_duplicate_extents (line 2209) were missing i_blocks updates
- [Phase 6] Verified v6.6 and v6.12 contain the same bug pattern
  (smb3_simple_falloc calls cifs_setsize without i_blocks update)
- [Phase 6] Patch needs adaptation for v6.12 and earlier
  (cifs_file_set_size doesn't exist)
- [Phase 8] Impact: all SMB users using fallocate; trigger is common;
  severity MEDIUM (metadata correctness)

**YES**

 fs/smb/client/cifsglob.h |  6 ++++++
 fs/smb/client/file.c     |  1 -
 fs/smb/client/inode.c    | 21 ++++++---------------
 fs/smb/client/smb2ops.c  | 20 ++++----------------
 4 files changed, 16 insertions(+), 32 deletions(-)

diff --git a/fs/smb/client/cifsglob.h b/fs/smb/client/cifsglob.h
index 0c3d2bbef938e..474d7b2aa2ef5 100644
--- a/fs/smb/client/cifsglob.h
+++ b/fs/smb/client/cifsglob.h
@@ -2324,4 +2324,10 @@ static inline int cifs_open_create_options(unsigned int oflags, int opts)
 	return opts;
 }
 
+/*
+ * The number of blocks is not related to (i_size / i_blksize), but instead
+ * 512 byte (2**9) size is required for calculating num blocks.
+ */
+#define CIFS_INO_BLOCKS(size) DIV_ROUND_UP_ULL((u64)(size), 512)
+
 #endif	/* _CIFS_GLOB_H */
diff --git a/fs/smb/client/file.c b/fs/smb/client/file.c
index 89dab96292de1..59478d819ad0c 100644
--- a/fs/smb/client/file.c
+++ b/fs/smb/client/file.c
@@ -998,7 +998,6 @@ static int cifs_do_truncate(const unsigned int xid, struct dentry *dentry)
 		if (!rc) {
 			netfs_resize_file(&cinode->netfs, 0, true);
 			cifs_setsize(inode, 0);
-			inode->i_blocks = 0;
 		}
 	}
 	if (cfile)
diff --git a/fs/smb/client/inode.c b/fs/smb/client/inode.c
index f9ee95953fa4a..c5d89ddc87c00 100644
--- a/fs/smb/client/inode.c
+++ b/fs/smb/client/inode.c
@@ -219,13 +219,7 @@ cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr,
 	 */
 	if (is_size_safe_to_change(cifs_i, fattr->cf_eof, from_readdir)) {
 		i_size_write(inode, fattr->cf_eof);
-
-		/*
-		 * i_blocks is not related to (i_size / i_blksize),
-		 * but instead 512 byte (2**9) size is required for
-		 * calculating num blocks.
-		 */
-		inode->i_blocks = (512 - 1 + fattr->cf_bytes) >> 9;
+		inode->i_blocks = CIFS_INO_BLOCKS(fattr->cf_bytes);
 	}
 
 	if (S_ISLNK(fattr->cf_mode) && fattr->cf_symlink_target) {
@@ -3009,6 +3003,11 @@ void cifs_setsize(struct inode *inode, loff_t offset)
 {
 	spin_lock(&inode->i_lock);
 	i_size_write(inode, offset);
+	/*
+	 * Until we can query the server for actual allocation size,
+	 * this is best estimate we have for blocks allocated for a file.
+	 */
+	inode->i_blocks = CIFS_INO_BLOCKS(offset);
 	spin_unlock(&inode->i_lock);
 	inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
 	truncate_pagecache(inode, offset);
@@ -3081,14 +3080,6 @@ int cifs_file_set_size(const unsigned int xid, struct dentry *dentry,
 	if (rc == 0) {
 		netfs_resize_file(&cifsInode->netfs, size, true);
 		cifs_setsize(inode, size);
-		/*
-		 * i_blocks is not related to (i_size / i_blksize), but instead
-		 * 512 byte (2**9) size is required for calculating num blocks.
-		 * Until we can query the server for actual allocation size,
-		 * this is best estimate we have for blocks allocated for a file
-		 * Number of blocks must be rounded up so size 1 is not 0 blocks
-		 */
-		inode->i_blocks = (512 - 1 + size) >> 9;
 	}
 
 	return rc;
diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c
index 9bfd3711030b4..067e313283291 100644
--- a/fs/smb/client/smb2ops.c
+++ b/fs/smb/client/smb2ops.c
@@ -1493,6 +1493,7 @@ smb2_close_getattr(const unsigned int xid, struct cifs_tcon *tcon,
 {
 	struct smb2_file_network_open_info file_inf;
 	struct inode *inode;
+	u64 asize;
 	int rc;
 
 	rc = __SMB2_close(xid, tcon, cfile->fid.persistent_fid,
@@ -1516,14 +1517,9 @@ smb2_close_getattr(const unsigned int xid, struct cifs_tcon *tcon,
 		inode_set_atime_to_ts(inode,
 				      cifs_NTtimeToUnix(file_inf.LastAccessTime));
 
-	/*
-	 * i_blocks is not related to (i_size / i_blksize),
-	 * but instead 512 byte (2**9) size is required for
-	 * calculating num blocks.
-	 */
-	if (le64_to_cpu(file_inf.AllocationSize) > 4096)
-		inode->i_blocks =
-			(512 - 1 + le64_to_cpu(file_inf.AllocationSize)) >> 9;
+	asize = le64_to_cpu(file_inf.AllocationSize);
+	if (asize > 4096)
+		inode->i_blocks = CIFS_INO_BLOCKS(asize);
 
 	/* End of file and Attributes should not have to be updated on close */
 	spin_unlock(&inode->i_lock);
@@ -2197,14 +2193,6 @@ smb2_duplicate_extents(const unsigned int xid,
 		rc = smb2_set_file_size(xid, tcon, trgtfile, dest_off + len, false);
 		if (rc)
 			goto duplicate_extents_out;
-
-		/*
-		 * Although also could set plausible allocation size (i_blocks)
-		 * here in addition to setting the file size, in reflink
-		 * it is likely that the target file is sparse. Its allocation
-		 * size will be queried on next revalidate, but it is important
-		 * to make sure that file's cached size is updated immediately
-		 */
 		netfs_resize_file(netfs_inode(inode), dest_off + len, true);
 		cifs_setsize(inode, dest_off + len);
 	}
-- 
2.51.0


  parent reply	other threads:[~2026-03-24 11:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-24 11:19 [PATCH AUTOSEL 6.19] drm/amd/display: Fix gamma 2.2 colorop TFs Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19] mshv: Fix error handling in mshv_region_pin Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.1] tg3: replace placeholder MAC address with device property Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.12] btrfs: reserve enough transaction items for qgroup ioctls Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-5.10] objtool: Fix Clang jump table detection Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.12] HID: logitech-hidpp: Prevent use-after-free on force feedback initialisation failure Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.1] i2c: tegra: Don't mark devices with pins as IRQ safe Sasha Levin
2026-03-24 11:19 ` Sasha Levin [this message]
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-5.10] atm: lec: fix use-after-free in sock_def_readable() Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-5.10] HID: wacom: fix out-of-bounds read in wacom_intuos_bt_irq Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.6] spi: geni-qcom: Check DMA interrupts early in ISR Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.12] wifi: mac80211: check tdls flag in ieee80211_tdls_oper Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19] objtool/klp: fix mkstemp() failure with long paths Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.6] arm64/scs: Fix handling of advance_loc4 Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.12] HID: logitech-hidpp: Enable MX Master 4 over bluetooth Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-5.15] btrfs: reject root items with drop_progress and zero drop_level Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-5.15] btrfs: don't take device_list_mutex when querying zone info Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-6.18] HID: core: Mitigate potential OOB by removing bogus memset() Sasha Levin
2026-03-24 11:19 ` [PATCH AUTOSEL 6.19-5.10] HID: multitouch: Check to ensure report responses match the request Sasha Levin

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=20260324111931.3257972-8-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=dhowells@redhat.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=pc@manguebit.org \
    --cc=samba-technical@lists.samba.org \
    --cc=sfrench@samba.org \
    --cc=sprasad@microsoft.com \
    --cc=stable@vger.kernel.org \
    --cc=stfrench@microsoft.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