linux/fs/overlayfs
Amir Goldstein 724768a393 ovl: fix incorrect fdput() on aio completion
ovl_{read,write}_iter() always call fdput(real) to put one or zero
refcounts of the real file, but for aio, whether it was submitted or not,
ovl_aio_put() also calls fdput(), which is not balanced.  This is only a
problem in the less common case when FDPUT_FPUT flag is set.

To fix the problem use get_file() to take file refcount and use fput()
instead of fdput() in ovl_aio_put().

Fixes: 2406a307ac ("ovl: implement async IO routines")
Cc: <stable@vger.kernel.org> # v5.6
Reviewed-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
2023-09-04 18:27:38 +03:00
..
copy_up.c ovl: fix failed copyup of fileattr on a symlink 2023-09-04 18:27:18 +03:00
dir.c ovl: store enum redirect_mode in config instead of a string 2023-06-19 14:02:01 +03:00
export.c ovl: make consistent use of OVL_FS() 2023-08-12 19:02:54 +03:00
file.c ovl: fix incorrect fdput() on aio completion 2023-09-04 18:27:38 +03:00
inode.c overlayfs update for 6.6 2023-08-30 11:54:09 -07:00
Kconfig ovl: Kconfig: introduce CONFIG_OVERLAY_FS_DEBUG 2023-08-12 19:02:53 +03:00
Makefile ovl: modify layer parameter parsing 2023-06-20 14:10:40 +03:00
namei.c ovl: make consistent use of OVL_FS() 2023-08-12 19:02:54 +03:00
overlayfs.h overlayfs update for 6.6 2023-08-30 11:54:09 -07:00
ovl_entry.h ovl: validate superblock in OVL_FS() 2023-08-12 19:02:54 +03:00
params.c ovl: make consistent use of OVL_FS() 2023-08-12 19:02:54 +03:00
params.h ovl: move all parameter handling into params.{c,h} 2023-07-03 16:08:17 +03:00
readdir.c vfs: get rid of old '->iterate' directory operation 2023-08-06 15:08:35 +02:00
super.c ovl: make consistent use of OVL_FS() 2023-08-12 19:02:54 +03:00
util.c overlayfs update for 6.6 2023-08-30 11:54:09 -07:00