This is the mail archive of the glibc-bugs@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]

[Bug libc/15661] posix_fallocate fallback code buggy and dangerous


http://sourceware.org/bugzilla/show_bug.cgi?id=15661

--- Comment #1 from Rich Felker <bugdal at aerifal dot cx> ---
If keeping the emulation is desirable, I do have one potential fix that would
avoid the race condition. fork a child process (because this might SIGBUS if
another thread or process truncates the file), possibly using clone to avoid
the parent receiving signals from the child's termination. In the child, mmap
the file and use atomic compare-and-swap on each page that should be allocated,
with the comparison and new values being equal. This will touch each page with
a write in a way that's non-destructive.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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