Re: [PATCH 1/8] networking/fanotify: declare fanotify socket numbers

Eric Paris
2009-09-11T21:13:57Z

On Fri, 2009-09-11 at 21:46 +0100, Jamie Lokier wrote:
> Eric Paris wrote:
> > > I would really prefer if you worked on eliminating the problem that
> > > prevents you from using netlink instead.
> >
> > I'm not really sure if I can, although I'd love to hear input from
> > someone who knows the netlink code on how I can make it do what I need.
> > I'm really not duplicating much other than the NLMSG_OK and NLMSG_NEXT
> > macros. My code doesn't even use skbs and I'm not savy enough to really
> > know how I could. I'm more than willing to work on it if someone can
> > point me to how it might work.
>
> Let's turn the question around.
>
> Since you're doing lots of non-sockety things, and can't tolerate
> dropped packets - why isn't it a character device? What's the reason
> for using a socket at all?
>
> (I'm reminded of /dev/poll, /dev/epoll and /dev/inotify :-)

Originally it was a char device and I was told to use a socket protocol
so I could use get/set sockopt rather than ioctl, because ioctl is the
devil (even if those aren't THAT much better).

The queuing being done using events instead of skbs was done reusing
inotify code, reusing network code would be just as good with me. What
I really need is a way to convey a pointer from one process to another.
That's why I claim loss is not an option, since I'm holding a reference
to the pointer I can't have that conveyance disappear under us.

If network people want me to get back out of the network system I can go
back to a char file with lots of ioctls. I'd love to reuse code, I just
don't know what's possible...

-Eric