From: Pekka Enberg [EMAIL PROTECTED]
The revokeat(2) and frevoke(2) system calls invalidate open file descriptors
and shared mappings of an inode. After an successful revocation, operations
on file descriptors fail with the EBADF or ENXIO error code for regular and
device files, respectively.
On Wed, Jul 11, 2007 at 12:01:06PM +0300, Pekka J Enberg wrote:
From: Pekka Enberg [EMAIL PROTECTED]
The revokeat(2) and frevoke(2) system calls invalidate open file descriptors
and shared mappings of an inode. After an successful revocation, operations
on file descriptors fail with the
On Wed, Jul 11, 2007 at 10:37:33AM +0100, Al Viro wrote:
On Wed, Jul 11, 2007 at 12:01:06PM +0300, Pekka J Enberg wrote:
From: Pekka Enberg [EMAIL PROTECTED]
The revokeat(2) and frevoke(2) system calls invalidate open file descriptors
and shared mappings of an inode. After an successful
Hi Al,
On Wed, 11 Jul 2007, Al Viro wrote:
Better: I have the only opened descriptor for foo. I send it to myself
as described above. I close it. revoke() is called, finds no opened
instances of foo in any descriptor tables and cheerfully does nothing.
I call recvmsg() and I have
On Wed, 11 Jul 2007, Al Viro wrote:
BTW, read() or write() in progress might get rather unhappy if your
live replacement of -f_mapping races with them...
For writes, we (1) never start any new operations after we've cleaned up
the file descriptor tables so (2) after we're done with do_fsync()
On Wed, Jul 11, 2007 at 12:50:48PM +0300, Pekka J Enberg wrote:
Hi Al,
On Wed, 11 Jul 2007, Al Viro wrote:
Better: I have the only opened descriptor for foo. I send it to myself
as described above. I close it. revoke() is called, finds no opened
instances of foo in any descriptor
On Wed, Jul 11, 2007 at 01:01:07PM +0300, Pekka J Enberg wrote:
On Wed, 11 Jul 2007, Al Viro wrote:
BTW, read() or write() in progress might get rather unhappy if your
live replacement of -f_mapping races with them...
For writes, we (1) never start any new operations after we've cleaned up
Hi,
On Wed, 11 Jul 2007, Al Viro wrote:
The fundamental issue here is that even if you do find struct file,
you can't blindly rip its -f_mapping since it can be in the middle
of -read(), -write(), pageout, etc. And even if you do manage
that, you still have the ability to do fchmod() later.