Re: [PATCH 01/16] ashmem: switch to ->read_iter

From: Al Viro
Date: Wed Aug 30 2017 - 11:29:03 EST


On Wed, Aug 30, 2017 at 04:59:52PM +0200, Christoph Hellwig wrote:
> And use the proper VFS helper for using the backing file.

Actually, I wonder if that update of ->f_pos of the underlying file is
correct. That's unrelated to this patch, but might be worth sorting
out while we are at it.

How about
mutex_unlock(&ashmem_mutex);
/*
* asma and asma->file are used outside the lock here. We assume
* once asma->file is set it will never be changed, and will not
* be destroyed until all references to the file are dropped and
* ashmem_release is called.
*/
ret = vfs_iter_read(asma->file, iter, &iocb->ki_pos, 0);
mutex_lock(&ashmem_mutex);
if (ret >= 0)
asma->file->f_pos = *pos;
out_unlock:
mutex_unlock(&ashmem_mutex);
return ret;

in there?