On Sat, May 16, 2020 at 11:04:36AM +0800, Hillf Danton wrote:
> > +   if (file->f_op->write_iter) {
> > +           struct kvec iov = { .iov_base = (void *)buf, .iov_len = count };
> > +           struct kiocb kiocb;
> > +           struct iov_iter iter;
> > +
> > +           init_sync_kiocb(&kiocb, file);
> > +           kiocb.ki_pos = *pos;
> > +           iov_iter_kvec(&iter, WRITE, &iov, 1, count);
> > +           ret = file->f_op->write_iter(&kiocb, &iter);
> > +           if (ret > 0)
> > +                   *pos = kiocb.ki_pos;
> > +   } else if (file->f_op->write) {
> > +           mm_segment_t old_fs = get_fs();
> > +
> > +           set_fs(KERNEL_DS);
> 
> Would you please shed light on who need it if a workqueue worker does
> not, given the access to buf? 

Can you rephrase the question, I unfortunately do not understand it at
all as-is.

Reply via email to