aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max.kellermann@ionos.com>2025-05-13 17:03:27 +0200
committerChristian Brauner <brauner@kernel.org>2025-05-15 12:03:12 +0200
commit2e1a8fbff51bb9bdf0fe9c6602855e308efcfcdb (patch)
tree87d15c942c066ccb631fbb43b79c93be231fc160
parentfs/open: make do_truncate() killable (diff)
downloadlinux-rng-2e1a8fbff51bb9bdf0fe9c6602855e308efcfcdb.tar.xz
linux-rng-2e1a8fbff51bb9bdf0fe9c6602855e308efcfcdb.zip
fs/read_write: make default_llseek() killable
Allows killing processes that are waiting for the inode lock. Signed-off-by: Max Kellermann <max.kellermann@ionos.com> Link: https://lore.kernel.org/20250513150327.1373061-4-max.kellermann@ionos.com Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/read_write.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/read_write.c b/fs/read_write.c
index bb0ed26a0b3a..0ef70e128c4a 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -332,7 +332,9 @@ loff_t default_llseek(struct file *file, loff_t offset, int whence)
struct inode *inode = file_inode(file);
loff_t retval;
- inode_lock(inode);
+ retval = inode_lock_killable(inode);
+ if (retval)
+ return retval;
switch (whence) {
case SEEK_END:
offset += i_size_read(inode);