Message ID | 167811742782.1909.380332356774647144.stgit@bazille.1015granger.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | NFSD: Protect against filesystem freezing | expand |
On Mon 06-03-23 10:43:47, Chuck Lever wrote: > From: Chuck Lever <chuck.lever@oracle.com> > > 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") > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> 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); > >
On Mon, 2023-03-06 at 10:43 -0500, Chuck Lever wrote: > From: Chuck Lever <chuck.lever@oracle.com> > > 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") > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> > --- > 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 <jlayton@kernel.org>
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);