> generic_file_write_iter(), when calling generic_rite_sync() and s/_rite/_write > --- a/fs/exfat/file.c > +++ b/fs/exfat/file.c > @@ -625,7 +625,7 @@ static ssize_t exfat_file_write_iter(struct kiocb *iocb, struct iov_iter *iter) > > if (iocb_is_dsync(iocb) && iocb->ki_pos > pos) { > ssize_t err = vfs_fsync_range(file, pos, iocb->ki_pos - 1, > - iocb->ki_flags & IOCB_SYNC); > + (iocb->ki_flags & IOCB_SYNC) ? 0 : 1); How about calling generic_write_sync() instead of vfs_fsync_range(), like in generic_file_write_iter()?