internal/poll: use sync.Once instead to guard CopyFileRange() with kernel 5.3
internal/poll: use sync.Once instead to guard CopyFileRange() with kernel 5.3

The existing implementation creates more branches with more states: -1, 0, 1,
which makes it not very intuitive to understand, let's use sync.Once and boolean
instead to make it more straightforward.

Change-Id: I05766e5fdf7dba37d6565f84d3db4373f9342fe5
Reviewed-on: https://go-review.googlesource.com/c/go/+/425880
Run-TryBot: Ian Lance Taylor <87e9c6d529889242b7e184afb632328636553ab4@google.com>
Reviewed-by: Heschi Kreinick <e89ab2b172855aa0ad01c40c4d8a3535a61ac68a@google.com>
TryBot-Result: Gopher Robot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Ian Lance Taylor <87e9c6d529889242b7e184afb632328636553ab4@google.com>
Auto-Submit: Ian Lance Taylor <87e9c6d529889242b7e184afb632328636553ab4@google.com>

golang/go,golang/go,golang/go,golang/go,golang/go,golang/go,golang/go,golang/go