Re: linux-next: Tree for Apr 13

From: David Howells
Date: Mon Apr 17 2023 - 10:08:47 EST


David Howells <dhowells@xxxxxxxxxx> 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