Re: [patch] epoll use a single inode ...

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Eric Dumazet <dada1@...>
Cc: Davide Libenzi <davidel@...>, Avi Kivity <avi@...>, Linux Kernel Mailing List <linux-kernel@...>, Andrew Morton <akpm@...>, Al Viro <viro@...>
Date: Wednesday, March 7, 2007 - 1:45 pm

On Wed, 7 Mar 2007, Eric Dumazet wrote:

Sure. The dentry and the inode need to *exist*, but they can be one single 
static dentry/inode per "file descriptor type".

We always pass in the "struct file *" to read/write too, since we need it 
anyway for things like file control information (eg "is it a nonblocking 
read or write" kinds of things).

So I'm not suggesting a NULL dentry/inode, I'm suggesting a single static 
one per type.

And yeah, it may be harder than it looks. Some things "know" that all the 
relevant info is in the inode, so they just pass in the inode. In the pipe 
layer, for example, you'd need to change free_pipe_info() and 
alloc_pipe_info() to pass in the file descriptor instead, same goes for 
pipe_release(). But the "struct file *" is always available, it's just 
that since the code was originally written to have all the info in the 
inode, some of the code isn't set up to use it or pass it on..

But your patch is independent of that, and looks fine. Except I don't like 
this part:

-       file->f_path.mnt = mntget(sock_mnt);
+       file->f_path.mnt = NULL;

since I'd be much happer with always having f_path.mnt available, the same 
way we should always have f_path.dentry there.

(Btw, your patch is *not* going to work with the file->f_private_data 
approach, because d_path() is not passed down the "file *" thing. So we'd 
need to do that, and that's more intrusive (it can be NULL, since for 
things like cwd/pwd we don't have a "struct file").

But I like your patch as a totally independent thing. "It just makes 
sense". 

(Apart from the f_path.mnt thing, which I think was something else ;)

			Linus
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [patch] epoll use a single inode ..., Davide Libenzi, (Tue Mar 6, 8:37 pm)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Tue Mar 6, 8:51 pm)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Wed Mar 7, 2:52 am)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Wed Mar 7, 1:02 pm)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Wed Mar 7, 1:31 pm)
Re: [patch] epoll use a single inode ..., Christoph Hellwig, (Thu Mar 8, 4:56 am)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Thu Mar 8, 5:42 am)
Re: [patch] epoll use a single inode ..., Christoph Hellwig, (Thu Mar 8, 6:21 am)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Thu Mar 8, 7:11 am)
Re: [patch] epoll use a single inode ..., Bob Copeland, (Thu Mar 8, 4:00 pm)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Thu Mar 8, 11:52 am)
Re: [patch] epoll use a single inode ..., Christoph Hellwig, (Thu Mar 8, 7:18 am)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Wed Mar 7, 1:45 pm)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Wed Mar 7, 2:06 pm)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Wed Mar 7, 2:30 pm)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Wed Mar 7, 2:52 pm)
Re: [patch] epoll use a single inode ..., Anton Blanchard, (Wed Mar 7, 6:14 pm)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Wed Mar 7, 6:57 pm)
Re: [patch] epoll use a single inode ..., Anton Blanchard, (Thu Mar 8, 10:46 pm)
Re: [patch] epoll use a single inode ..., Michael K. Edwards, (Wed Mar 7, 9:25 pm)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Wed Mar 7, 11:20 pm)
Re: [patch] epoll use a single inode ..., Michael K. Edwards, (Thu Mar 8, 4:37 am)
Re: [patch] epoll use a single inode ..., Kyle Moffett, (Wed Mar 7, 10:48 pm)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Thu Mar 8, 3:24 am)
Re: [patch] epoll use a single inode ..., Anton Blanchard, (Thu Mar 8, 10:51 pm)
Re: [patch] epoll use a single inode ..., Kyle Moffett, (Thu Mar 8, 9:34 pm)
Re: [patch] epoll use a single inode ..., Anton Blanchard, (Thu Mar 8, 10:52 pm)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Wed Mar 7, 3:07 pm)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Wed Mar 7, 1:36 pm)
Re: [patch] epoll use a single inode ..., Eric Dumazet, (Wed Mar 7, 3:16 am)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Wed Mar 7, 1:21 pm)
Re: [patch] epoll use a single inode ..., Christoph Hellwig, (Wed Mar 7, 4:56 am)
Re: [patch] epoll use a single inode ..., Davide Libenzi, (Wed Mar 7, 3:15 am)
Re: [patch] epoll use a single inode ..., Davide Libenzi, (Tue Mar 6, 9:01 pm)
Re: [patch] epoll use a single inode ..., Linus Torvalds, (Tue Mar 6, 9:27 pm)
Re: [patch] epoll use a single inode ..., Davide Libenzi, (Tue Mar 6, 9:47 pm)