linux-stable/fs/nfs
Jeff Layton b27ee06824 nfsd: allow reaping files still under writeback
[ Upstream commit dcb779fcd4 ]

On most filesystems, there is no reason to delay reaping an nfsd_file
just because its underlying inode is still under writeback. nfsd just
relies on client activity or the local flusher threads to do writeback.

The main exception is NFS, which flushes all of its dirty data on last
close. Add a new EXPORT_OP_FLUSH_ON_CLOSE flag to allow filesystems to
signal that they do this, and only skip closing files under writeback on
such filesystems.

Also, remove a redundant NULL file pointer check in
nfsd_file_check_writeback, and clean up nfs's export op flag
definitions.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Acked-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
[ cel: adjusted to apply to v5.15.y ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2024-04-10 16:19:27 +02:00
..
blocklayout blocklayoutdriver: Fix reference leak of pnfs_device_node 2024-01-25 14:52:36 -08:00
filelayout pNFS/filelayout: Fix coalescing test for single DS 2023-01-24 07:22:41 +01:00
flexfilelayout NFS/pNFS: Report EINVAL errors from connect() to the server 2023-10-06 13:18:00 +02:00
Kconfig
Makefile
cache_lib.c
cache_lib.h
callback.c NFSD: Move svc_serv_ops::svo_function into struct svc_serv 2024-04-10 16:19:01 +02:00
callback.h NFSv4.1: Fix uninitialised variable in devicenotify 2022-02-16 12:56:08 +01:00
callback_proc.c pNFS: Avoid a live lock condition in pnfs_update_layout() 2022-06-22 14:21:59 +02:00
callback_xdr.c SUNRPC: Parametrize how much of argsize should be zeroed 2024-04-10 16:19:17 +02:00
client.c NFSv4.1 query for fs_location attr on a new file system 2022-02-16 12:56:09 +01:00
delegation.c NFSv4: Fix a potential state reclaim deadlock 2022-11-10 18:15:26 +01:00
delegation.h
dir.c NFS: Further optimisations for 'ls -l' 2022-09-15 11:30:03 +02:00
direct.c nfs: fix UAF in direct writes 2024-04-10 16:18:40 +02:00
dns_resolve.c
dns_resolve.h
export.c nfsd: allow reaping files still under writeback 2024-04-10 16:19:27 +02:00
file.c NFSv4: keep state manager thread active if swap is enabled 2023-03-10 09:39:30 +01:00
fs_context.c nfs: fix broken handling of the softreval mount option 2022-05-18 10:26:49 +02:00
fscache-index.c
fscache.c
fscache.h
getroot.c NFS: Create a new nfs_alloc_fattr_with_label() function 2022-06-09 10:23:17 +02:00
inode.c nfs: use vfs setgid helper 2023-08-30 16:18:19 +02:00
internal.h NFS: Create a new nfs_alloc_fattr_with_label() function 2022-06-09 10:23:17 +02:00
io.c
iostat.h
mount_clnt.c
namespace.c NFS: Fix an Oops in nfs_d_automount() 2022-12-31 13:14:13 +01:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN 2023-09-19 12:22:43 +02:00
nfs3_fs.h
nfs3acl.c
nfs3client.c Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING" 2022-08-17 14:22:45 +02:00
nfs3proc.c
nfs3super.c
nfs3xdr.c NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN 2023-09-19 12:22:43 +02:00
nfs4_fs.h NFSv4: keep state manager thread active if swap is enabled 2023-03-10 09:39:30 +01:00
nfs4client.c NFSv4.1: fix pnfs MDS=DS session trunking 2023-10-06 13:18:00 +02:00
nfs4file.c NFSv4.2 fix problems with __nfs42_ssc_open 2022-08-31 17:16:37 +02:00
nfs4getroot.c
nfs4idmap.c NFSv4: Fix races in the legacy idmapper upcall 2022-08-25 11:40:02 +02:00
nfs4idmap.h
nfs4namespace.c NFSv4: Fix free of uninitialized nfs4_label on referral lookup. 2022-11-03 23:59:10 +09:00
nfs4proc.c NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102 2024-03-26 18:21:33 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFS: restore module put when manager exits. 2024-04-10 16:19:07 +02:00
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h trace: Relocate event helper files 2024-04-10 16:19:24 +02:00
nfs4xdr.c NFSv4.2: Fix a memory stomp in decode_attr_security_label 2022-12-31 13:14:13 +01:00
nfs42.h NFSv4.2: fix listxattr maximum XDR buffer size 2024-03-26 18:21:33 -04:00
nfs42proc.c NFSv4.2: fix handling of COPY ERR_OFFLOAD_NO_REQ 2023-09-19 12:22:43 +02:00
nfs42xattr.c
nfs42xdr.c NFSv42: Don't fail clone() unless the OP_CLONE operation failed 2021-12-01 09:04:47 +01:00
nfsroot.c NFS: Fix an off by one in root_nfs_cat() 2024-03-26 18:21:33 -04:00
nfstrace.c
nfstrace.h trace: Relocate event helper files 2024-04-10 16:19:24 +02:00
pagelist.c NFSv4.1 mark qualified async operations as MOVEABLE tasks 2022-06-09 10:23:17 +02:00
pnfs.c pNFS: Fix a hang in nfs4_evict_inode() 2023-10-25 11:59:02 +02:00
pnfs.h NFS: Move NFS protocol display macros to global header 2024-04-10 16:18:52 +02:00
pnfs_dev.c NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info 2023-09-19 12:22:56 +02:00
pnfs_nfs.c pNFS: Fix assignment of xprtdata.cred 2023-09-19 12:22:43 +02:00
proc.c NFS: NFSv2/v3 clients should never be setting NFS_CAP_XATTR 2022-04-08 14:22:52 +02:00
read.c
super.c NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0 2022-09-23 14:15:47 +02:00
symlink.c
sysctl.c
sysfs.c NFS: rename nfs_client_kset to nfs_kset 2023-10-10 21:59:04 +02:00
sysfs.h
unlink.c NFSv4.1 mark qualified async operations as MOVEABLE tasks 2022-06-09 10:23:17 +02:00
write.c nfs: fix UAF in direct writes 2024-04-10 16:18:40 +02:00