This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Change sync_file_range to be non-cancellable


On 21/10/15 14:24, Florian Weimer wrote:
On 10/21/2015 02:34 PM, Adhemerval Zanella wrote:
This patch changes the linux specific sync_file_range syscalls to be
non-cancellable.  The rationale is:

1. This is a Linux specific syscall that is not mentioned in POSIX
    cancellable entrypoints [1] and the standard states and implementation
    shall not introduce cancellation points into any other functions
    specified.

It says that we must not make any function mentioned in POSIX
cancellable.  We can certainly introduce our own functions which are
cancellable and not port of POSIX.

I think sync_file_range should be cancellable for consistency with fsync
and fdatasync.


this is something musl might want too.

one ugliness is that cancellation is either guaranteed
to be acted upon or guaranteed not to, which is bad
for all cases when there is a fast path in libc that
avoids calling the blocking syscall.

e.g. sync_file_range is not a cancellation point now
if it returns ENOSYS in glibc.

Florian



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]