Re: [PATCH 07/11] vfs: add nowait parameter for file_accessed()

From: Matthew Wilcox
Date: Sun Aug 27 2023 - 17:33:34 EST


On Sun, Aug 27, 2023 at 09:28:31PM +0800, Hao Xu wrote:
> From: Hao Xu <howeyxu@xxxxxxxxxxx>
>
> Add a boolean parameter for file_accessed() to support nowait semantics.
> Currently it is true only with io_uring as its initial caller.

So why do we need to do this as part of this series? Apparently it
hasn't caused any problems for filemap_read().

> +++ b/mm/filemap.c
> @@ -2723,7 +2723,7 @@ ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter,
> folio_batch_init(&fbatch);
> } while (iov_iter_count(iter) && iocb->ki_pos < isize && !error);
>
> - file_accessed(filp);
> + file_accessed(filp, false);
>
> return already_read ? already_read : error;
> }
> @@ -2809,7 +2809,7 @@ generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
> retval = kiocb_write_and_wait(iocb, count);
> if (retval < 0)
> return retval;
> - file_accessed(file);
> + file_accessed(file, false);
>
> retval = mapping->a_ops->direct_IO(iocb, iter);
> if (retval >= 0) {
> @@ -2978,7 +2978,7 @@ ssize_t filemap_splice_read(struct file *in, loff_t *ppos,
>
> out:
> folio_batch_release(&fbatch);
> - file_accessed(in);
> + file_accessed(in, false);
>
> return total_spliced ? total_spliced : error;
> }