On Thu, Aug 10, 2017 at 07:41:45PM -0400, Mimi Zohar wrote: > From: Christoph Hellwig <hch@xxxxxx> > > Add a new ->integrity_read file operation to read data for integrity > hash collection. This is defined to be equivalent to ->read_iter, > except that it will be called with the i_rwsem held exclusively. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Btw, most of this is yours now, feel free to take over the authorship with a little credit to me for the initial patch if you want. > Cc: Matthew Garrett <matthew.garrett@xxxxxxxxxx> I don't think that will reach Matthew anymore :) > -static ssize_t efivarfs_file_read(struct file *file, char __user *userbuf, > - size_t count, loff_t *ppos) > +static ssize_t efivarfs_file_read_iter(struct kiocb *iocb, > + struct iov_iter *iter) The efivars switch to read_iter should be a separate patch before this one. > /** > + * simple_read_iter_from_buffer - copy data from the buffer to user space > + * @iocb: struct containing the file, the current position and other info > + * @to: the user space buffer to read to > + * @from: the buffer to read from > + * @available: the size of the buffer > + * > + * The simple_read_iter_from_buffer() function reads up to @available bytes > + * from the current buffer into the user space buffer. > + * > + * On success, the current buffer offset is advanced by the number of bytes > + * read, or a negative value is returned on error. > + **/ > +ssize_t simple_read_iter_from_buffer(struct kiocb *iocb, struct iov_iter *to, > + const void *from, size_t available) The addition of simple_read_iter_from_buffer should be another separate patch, before efivars starts using it.