Proposal: a revoke() system call
Ed Schouten
ed at 80386.nl
Tue Jul 8 15:36:33 UTC 2008
Hello Robert,
* Robert Watson <rwatson at FreeBSD.org> wrote:
> BTW, on a similar note to the above: I've noticed there are several spots
> of relative non-atomicity in the Linux emulation code, where rather than
> just wrapping existing system calls with binary conversion of arguments
> and return values, we do a semantic wrapping that is necessarily
> non-atomic with respect to the native code. For example, consider the
> Linuxulator open code in linux_common_open():
I also noticed similar constructs inside the stat() calls, to translate
device major/minor numbers. As you can see, some stat() routines call
translate_path_major_minor_at() after performing the regular stat()
operation. The translate_path_major_minor_at() is implemented by
calling kern_openat(). This has three disadvantages:
- It is non-atomic.
- It can only perform the translation on nodes it has O_RDONLY access
to. This shouldn't be a big problem, but may cause inconsistencies
when users look around in devfs.
- The translation may not always work when the calling process is out of
file descriptors.
Yours,
--
Ed Schouten <ed at 80386.nl>
WWW: http://80386.nl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20080708/252ee0ce/attachment.pgp
More information about the freebsd-arch
mailing list