[PATCH 3/3] ntfs: Fix possible deadlock
From: Ethan Tidmore
Date: Thu Feb 26 2026 - 12:20:52 EST
In the error path for ntfs_attr_map_whole_runlist() the lock is not
released.
Add release for lock.
Detected by Smatch:
fs/ntfs/attrib.c:5197 ntfs_non_resident_attr_collapse_range() warn:
inconsistent returns '&ni->runlist.lock'.
Fixes: 495e90fa33482 ("ntfs: update attrib operations")
Signed-off-by: Ethan Tidmore <ethantidmore06@xxxxxxxxx>
---
fs/ntfs/attrib.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/ntfs/attrib.c b/fs/ntfs/attrib.c
index 71ad870eceac..2af45df2aab1 100644
--- a/fs/ntfs/attrib.c
+++ b/fs/ntfs/attrib.c
@@ -5124,8 +5124,10 @@ int ntfs_non_resident_attr_collapse_range(struct ntfs_inode *ni, s64 start_vcn,
down_write(&ni->runlist.lock);
ret = ntfs_attr_map_whole_runlist(ni);
- if (ret)
+ if (ret) {
+ up_write(&ni->runlist.lock);
return ret;
+ }
len = min(len, end_vcn - start_vcn);
for (rl = ni->runlist.rl, dst_cnt = 0; rl && rl->length; rl++)
--
2.53.0