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