should a copy_file_range(2) syscall be interrupted via a signal

Rick Macklem rmacklem at uoguelph.ca
Fri Jul 5 00:28:55 UTC 2019


Hi,

I have been working on a Linux compatible copy_file_range(2) syscall
(the current code can be found at https://reviews.freebsd.org/D20584).

One outstanding issue is how it should deal with signals.
Right now, I have vn_start_write() without PCATCH, so that it won't be
interrupted by a signal, but I notice that vn_write() {ie. write syscall } does
have PCATCH on vn_start_write() and so does vn_rdwr() when it is called
without IO_NODELOCKED.

I am thinking that copy_file_range(2) should do this also.
However, if it returns an error, it is impossible for the caller to know how much
of the data range got copied.

What do you think the copy_file_range(2) code should do?

Thanks, rick
ps: I've used FreeBSD-current@ this time, to see if I get more replies than I
      did using FreeBSD-fs at .


More information about the freebsd-current mailing list