mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 05:44:11 +00:00
NFSD: Protect against filesystem freezing
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: 73da852e38
("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>
This commit is contained in:
parent
fb5b855d9f
commit
fd9a2e1d51
1 changed files with 2 additions and 0 deletions
|
@ -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);
|
since = READ_ONCE(file->f_wb_err);
|
||||||
if (verf)
|
if (verf)
|
||||||
nfsd_copy_write_verifier(verf, nn);
|
nfsd_copy_write_verifier(verf, nn);
|
||||||
|
file_start_write(file);
|
||||||
host_err = vfs_iter_write(file, &iter, &pos, flags);
|
host_err = vfs_iter_write(file, &iter, &pos, flags);
|
||||||
|
file_end_write(file);
|
||||||
if (host_err < 0) {
|
if (host_err < 0) {
|
||||||
nfsd_reset_write_verifier(nn);
|
nfsd_reset_write_verifier(nn);
|
||||||
trace_nfsd_writeverf_reset(nn, rqstp, host_err);
|
trace_nfsd_writeverf_reset(nn, rqstp, host_err);
|
||||||
|
|
Loading…
Reference in a new issue