Messages in this thread | | | Date | Mon, 4 Jan 2021 18:57:17 +0000 | From | Al Viro <> | Subject | Re: [PATCH][RESEND] vfs: serialize updates to file->f_sb_err with f_lock |
| |
On Mon, Jan 04, 2021 at 01:43:47PM -0500, Jeff Layton wrote: > @@ -172,7 +172,12 @@ SYSCALL_DEFINE1(syncfs, int, fd) > ret = sync_filesystem(sb); > up_read(&sb->s_umount); > > - ret2 = errseq_check_and_advance(&sb->s_wb_err, &f.file->f_sb_err); > + if (errseq_check(&sb->s_wb_err, f.file->f_sb_err)) { > + /* Something changed, must use slow path */ > + spin_lock(&f.file->f_lock); > + ret2 = errseq_check_and_advance(&sb->s_wb_err, &f.file->f_sb_err); > + spin_unlock(&f.file->f_lock); > + }
Is there any point bothering with the fastpath here? I mean, look at the up_read() immediately prior to that thing...
| |