linux/fs/nfs
NeilBrown 3ca951b618 NFS: use cond_resched() when restarting walk of delegation list.
In three places we walk the list of delegations for an nfs_client
until an interesting one is found, then we act of that delegation
and restart the walk.

New delegations are added to the end of a list and the interesting
delegations are usually old, so in many case we won't repeat
a long walk over and over again, but it is possible - particularly if
the first server in the list has a large number of uninteresting
delegations.

In each cache the work done on interesting delegations will often
complete without sleeping, so this could loop many times without
giving up the CPU.

So add a cond_resched() at an appropriate point to avoid hogging the
CPU for too long.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
2018-05-31 14:59:19 -04:00
..
blocklayout pnfs/blocklayout: Ensure disk address in block device map 2018-01-25 16:42:35 -05:00
filelayout nfs41: do not return ENOMEM on LAYOUTUNAVAILABLE 2018-01-18 12:51:31 -05:00
flexfilelayout NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
cache_lib.c NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
cache_lib.h NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
callback.c NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
callback.h
callback_proc.c NFSv4: Fix broken cast in nfs4_callback_recallany() 2018-02-21 16:35:50 -05:00
callback_xdr.c NFSv4: Clean up CB_GETATTR encoding 2018-04-10 16:06:22 -04:00
client.c nfs: fix a deadlock in nfs client initialization 2017-12-15 14:31:49 -05:00
delegation.c NFS: use cond_resched() when restarting walk of delegation list. 2018-05-31 14:59:19 -04:00
delegation.h NFSv4: Fix the nfs_inode_set_delegation() arguments 2018-04-10 16:06:22 -04:00
dir.c NFS: Optimise away lookups for rename targets 2018-05-28 13:29:19 -04:00
direct.c NFS: Fix an incorrect type in struct nfs_direct_req 2018-03-08 12:56:31 -05:00
dns_resolve.c
dns_resolve.h
export.c nfs: remove unused label in nfs_encode_fh() 2018-01-16 10:12:49 -05:00
file.c NFS: Revert "NFS: Move the flock open mode check into nfs_flock()" 2017-11-17 16:43:52 -05:00
fscache-index.c fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
fscache.c fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
fscache.h fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
getroot.c
inode.c NFS client updates for Linux 4.17 2018-04-12 12:55:50 -07:00
internal.h Rename superblock flags (MS_xyz -> SB_xyz) 2017-11-27 13:05:09 -08:00
io.c NFS: Fix a race between mmap() and O_DIRECT 2018-01-28 22:00:15 -05:00
iostat.h
Kconfig
Makefile
mount_clnt.c
namespace.c
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c
nfs3client.c
nfs3proc.c NFSv3/acl: forget acl cache after setattr 2018-04-10 16:06:22 -04:00
nfs3super.c
nfs3xdr.c NFS: advance nfs_entry cookie only after decoding completes successfully 2018-04-10 16:06:22 -04:00
nfs4_fs.h NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
nfs4client.c nfs: system crashes after NFS4ERR_MOVED recovery 2018-02-22 12:17:42 -05:00
nfs4file.c nfs4file: get rid of pointless include of btrfs.h 2017-12-30 00:03:39 -05:00
nfs4getroot.c
nfs4idmap.c NFS: reject request for id_legacy key without auxdata 2018-01-22 10:05:11 -05:00
nfs4idmap.h
nfs4namespace.c nfs: Referrals should use the same proto setting as their parent 2018-01-14 23:06:30 -05:00
nfs4proc.c NFSv4.1: Fix exclusive create 2018-04-10 16:06:22 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c nfs: Use ida_simple API 2018-04-10 16:06:22 -04:00
nfs4super.c
nfs4sysctl.c nfs: Do not convert nfs_idmap_cache_timeout to jiffies 2018-01-18 15:10:47 -05:00
nfs4trace.c
nfs4trace.h NFS client updates for Linux 4.15 2017-11-17 14:18:00 -08:00
nfs4xdr.c NFS client updates for Linux 4.17 2018-04-12 12:55:50 -07:00
nfs42.h
nfs42proc.c
nfs42xdr.c
nfsroot.c
nfstrace.c
nfstrace.h NFS client updates for Linux 4.16 2018-01-30 19:03:48 -08:00
pagelist.c sched/wait, fs/nfs: Convert wait_on_atomic_t() usage to the new wait_var_event() API 2018-03-20 08:23:21 +01:00
pnfs.c pNFS: Prevent the layout header refcount going to zero in pnfs_roc() 2018-03-08 12:56:31 -05:00
pnfs.h pnfs/blocklayout: handle transient devices 2018-01-14 23:06:29 -05:00
pnfs_dev.c pnfs/blocklayout: handle transient devices 2018-01-14 23:06:29 -05:00
pnfs_nfs.c sched/wait, fs/nfs: Convert wait_on_atomic_t() usage to the new wait_var_event() API 2018-03-20 08:23:21 +01:00
proc.c NFS: Remove the unused return_delegation() callback 2018-04-10 16:06:22 -04:00
read.c
super.c fs: Teach path_connected to handle nfs filesystems with multiple roots. 2018-03-15 18:48:38 -04:00
symlink.c
sysctl.c
unlink.c NFS: Add a delegation return into nfs4_proc_unlink_setup() 2018-04-10 16:06:22 -04:00
write.c NFS client updates for Linux 4.17 2018-04-12 12:55:50 -07:00