Blob Blame History Raw
From: Chuck Lever <chuck.lever@oracle.com>
Date: Mon, 6 Mar 2023 10:43:47 -0500
Subject: [PATCH] NFSD: Protect against filesystem freezing
Git-commit: fd9a2e1d513823e840960cb3bc26d8b7749d4ac2
Patch-mainline: v6.3
References: git-fixes

Flole observes this WARNING on occasion:

[1210423.486503] WARNING: CPU: 8 PID: 1524732 at fs/ext4/ext4_jbd2.c:75 ext4_journal_check_start+0x68/0xb0

Reported-by: <flole@flole.de>
Suggested-by: Jan Kara <jack@suse.cz>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217123
Fixes: 73da852e3831 ("nfsd: use vfs_iter_read/write")
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Acked-by: NeilBrown <neilb@suse.com>

---
 fs/nfsd/vfs.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1032,7 +1032,9 @@ nfsd_vfs_write(struct svc_rqst *rqstp, s
 			nfsd_copy_boot_verifier(verf,
 					net_generic(SVC_NET(rqstp),
 					nfsd_net_id));
+		file_start_write(file);
 		host_err = vfs_iter_write(file, &iter, &pos, flags);
+		file_end_write(file);
 		if (host_err < 0)
 			nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
 						 nfsd_net_id));