OSDN Git Service
(root)
/
tomoyo
/
tomoyo-test1.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
12ee4b6
)
splice: fsnotify_access(fd)/fsnotify_modify(fd) in vmsplice
author
Ahelenia Ziemiańska
<nabijaczleweli@nabijaczleweli.xyz>
Mon, 3 Jul 2023 14:42:17 +0000
(16:42 +0200)
committer
Christian Brauner
<brauner@kernel.org>
Mon, 10 Jul 2023 12:36:11 +0000
(14:36 +0200)
Same logic applies here: this can fill up the pipe and pollers that rely
on getting IN_MODIFY notifications never wake up.
Fixes:
983652c69199
("splice: report related fsnotify events")
Link:
https://lore.kernel.org/linux-fsdevel/jbyihkyk5dtaohdwjyivambb2gffyjs3dodpofafnkkunxq7bu@jngkdxx65pux/t/#u
Link:
https://bugs.debian.org/1039488
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Acked-by: Jan Kara <jack@suse.cz>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Message-Id: <
8d9ad5acb9c5c1dd2376a2ff5da6ac3183115389
.
1688393619
.git.nabijaczleweli@nabijaczleweli.xyz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/splice.c
patch
|
blob
|
history
diff --git
a/fs/splice.c
b/fs/splice.c
index
016b0a8
..
2cb89f5
100644
(file)
--- a/
fs/splice.c
+++ b/
fs/splice.c
@@
-1460,6
+1460,9
@@
static long vmsplice_to_user(struct file *file, struct iov_iter *iter,
pipe_unlock(pipe);
}
+ if (ret > 0)
+ fsnotify_access(file);
+
return ret;
}
@@
-1489,8
+1492,10
@@
static long vmsplice_to_pipe(struct file *file, struct iov_iter *iter,
if (!ret)
ret = iter_to_pipe(iter, pipe, buf_flag);
pipe_unlock(pipe);
- if (ret > 0)
+ if (ret > 0)
{
wakeup_pipe_readers(pipe);
+ fsnotify_modify(file);
+ }
return ret;
}