Subject: Re: linux-next: Tree for Apr 13

From: David Howells <[email-masked]>
Date: Mon, 17 Apr 2023 15:06:47 +0100

David Howells <[email-masked]> wrote:

> The problem might be summed up by the following snippet:
> 
> 	openat(AT_FDCWD, "/dev/loop0", O_RDONLY) = 3
> 	newfstatat(3, "", {st_mode=S_IFBLK|0660, st_rdev=makedev(0x7, 0), ...}, AT_EMPTY_PATH) = 0
> 	splice(3, NULL, 1, NULL, 1048576, 0)    = 0

Ah.  In filemap_splice_read():

	do {
		cond_resched();

		if (*ppos >= i_size_read(file_inode(in)))
			break;

but i_size_read(file_inode(in)) for a blockdev returns 0, it would seem.  What
should I use instead?

David