Re: [PATCH 3/3] btrfs: Avoid live-lock in search_ioctl() on hardware with sub-page faults
From: Linus Torvalds
Date: Wed Nov 24 2021 - 18:00:24 EST
Catalin talked about the other change, but this part:
On Wed, Nov 24, 2021 at 12:04 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> (where __copy_to_user_nofault() is a new function that does exactly what
> copy_to_user_nofault() does, but returns the number of bytes copied)
If we want the "how many bytes" part, then we should just make
copy_to_user_nofault() have the same semantics as a plain
copy_to_user().
IOW, change it to return "number of bytes not copied".
Lookin gat the current uses, such a change would be trivial. The only
case that wants a 0/-EFAULT error is the bpf_probe_write_user(),
everybody else already just wants "zero for success", so changing
copy_to_user_nofault() would be trivial.
And it really is odd and very non-intuitive that
copy_to_user_nofault() has a completely different return value from
copy_to_user().
So if _anybody_ wants a byte-count, that should just be fixed.
Linus