diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2024-08-21 14:05:00 -0400 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2024-08-22 17:01:10 -0400 |
commit | a017ad1313fc91bdf235097fd0a02f673fc7bb11 (patch) | |
tree | 1e3db93771c1866bfcf490913b5b80910853326f /fs/nfs | |
parent | 95832998fb6edc50d4f2f6a958d9f90142d4be48 (diff) | |
download | linux-stable-a017ad1313fc91bdf235097fd0a02f673fc7bb11.tar.gz linux-stable-a017ad1313fc91bdf235097fd0a02f673fc7bb11.tar.bz2 linux-stable-a017ad1313fc91bdf235097fd0a02f673fc7bb11.zip |
NFSv4: Add missing rescheduling points in nfs_client_return_marked_delegations
We're seeing reports of soft lockups when iterating through the loops,
so let's add rescheduling points.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/super.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index cbbd4866b0b7..97b386032b71 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -47,6 +47,7 @@ #include <linux/vfs.h> #include <linux/inet.h> #include <linux/in6.h> +#include <linux/sched.h> #include <linux/slab.h> #include <net/ipv6.h> #include <linux/netdevice.h> @@ -228,6 +229,7 @@ static int __nfs_list_for_each_server(struct list_head *head, ret = fn(server, data); if (ret) goto out; + cond_resched(); rcu_read_lock(); } rcu_read_unlock(); |