Don't use an inode at all.
No, at least pipes could easily just use "file->f_private_data" instead.
Now, sockets really do want the inode (or it would be really really big
changes), but pipes really just want a "struct pipe_inode_info" pointer,
which we could hide away directly in the file descriptor itself.
That's what Davide already did (on my suggestion) for signalfd - there's a
*single* inode, and the real data is in the per-fd f_private_data.
Linus
-