Commit 52cbee2a authored by Sergey Alirzaev's avatar Sergey Alirzaev Committed by Dominique Martinet
Browse files

9p: read only once on O_NONBLOCK

A proper way to handle O_NONBLOCK would be making the requests and
responses happen asynchronously, but this would require serious code
refactoring.

Link: http://lkml.kernel.org/r/20200205003457.24340-2-l29ah@cock.li


Signed-off-by: default avatarSergey Alirzaev <l29ah@cock.li>
Signed-off-by: default avatarDominique Martinet <dominique.martinet@cea.fr>
parent 388f6966
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -388,6 +388,9 @@ v9fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
	p9_debug(P9_DEBUG_VFS, "count %zu offset %lld\n",
		 iov_iter_count(to), iocb->ki_pos);

	if (iocb->ki_filp->f_flags & O_NONBLOCK)
		ret = p9_client_read_once(fid, iocb->ki_pos, to, &err);
	else
		ret = p9_client_read(fid, iocb->ki_pos, to, &err);
	if (!ret)
		return err;