2023-03-06 15:45:16

by Chuck Lever

[permalink] [raw]
Subject: [PATCH] NFSD: Protect against filesystem freezing

From: Chuck Lever <[email protected]>

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: <[email protected]>
Suggested-by: Jan Kara <[email protected]>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217123
Fixes: 73da852e3831 ("nfsd: use vfs_iter_read/write")
Signed-off-by: Chuck Lever <[email protected]>
---
fs/nfsd/vfs.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 21d5209f6e04..ba34a31a7c70 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1104,7 +1104,9 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf,
since = READ_ONCE(file->f_wb_err);
if (verf)
nfsd_copy_write_verifier(verf, nn);
+ file_start_write(file);
host_err = vfs_iter_write(file, &iter, &pos, flags);
+ file_end_write(file);
if (host_err < 0) {
nfsd_reset_write_verifier(nn);
trace_nfsd_writeverf_reset(nn, rqstp, host_err);




2023-03-06 16:25:29

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] NFSD: Protect against filesystem freezing

On Mon 06-03-23 10:43:47, Chuck Lever wrote:
> From: Chuck Lever <[email protected]>
>
> 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: <[email protected]>
> Suggested-by: Jan Kara <[email protected]>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217123
> Fixes: 73da852e3831 ("nfsd: use vfs_iter_read/write")
> Signed-off-by: Chuck Lever <[email protected]>

Looks good to me. Feel free to add:

Reviewed-by: Jan Kara <[email protected]>

Honza

> ---
> fs/nfsd/vfs.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
> index 21d5209f6e04..ba34a31a7c70 100644
> --- a/fs/nfsd/vfs.c
> +++ b/fs/nfsd/vfs.c
> @@ -1104,7 +1104,9 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf,
> since = READ_ONCE(file->f_wb_err);
> if (verf)
> nfsd_copy_write_verifier(verf, nn);
> + file_start_write(file);
> host_err = vfs_iter_write(file, &iter, &pos, flags);
> + file_end_write(file);
> if (host_err < 0) {
> nfsd_reset_write_verifier(nn);
> trace_nfsd_writeverf_reset(nn, rqstp, host_err);
>
>
--
Jan Kara <[email protected]>
SUSE Labs, CR

2023-03-06 22:57:59

by Jeff Layton

[permalink] [raw]
Subject: Re: [PATCH] NFSD: Protect against filesystem freezing

On Mon, 2023-03-06 at 10:43 -0500, Chuck Lever wrote:
> From: Chuck Lever <[email protected]>
>
> 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: <[email protected]>
> Suggested-by: Jan Kara <[email protected]>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217123
> Fixes: 73da852e3831 ("nfsd: use vfs_iter_read/write")
> Signed-off-by: Chuck Lever <[email protected]>
> ---
> fs/nfsd/vfs.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
> index 21d5209f6e04..ba34a31a7c70 100644
> --- a/fs/nfsd/vfs.c
> +++ b/fs/nfsd/vfs.c
> @@ -1104,7 +1104,9 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf,
> since = READ_ONCE(file->f_wb_err);
> if (verf)
> nfsd_copy_write_verifier(verf, nn);
> + file_start_write(file);
> host_err = vfs_iter_write(file, &iter, &pos, flags);
> + file_end_write(file);
> if (host_err < 0) {
> nfsd_reset_write_verifier(nn);
> trace_nfsd_writeverf_reset(nn, rqstp, host_err);
>
>

Reviewed-by: Jeff Layton <[email protected]>