Robert Watson 6064c5d362 Add ifunit_ref(), a version of ifunit(), that returns not just an
interface pointer, but also a reference to it.

Modify ifioctl() to use ifunit_ref(), holding the reference until
all ioctls, etc, have completed.

This closes a class of reader-writer races in which interfaces
could be removed during long-running ioctls, leading to crashes.
Many other consumers of ifunit() should now use ifunit_ref() to
avoid similar races.

MFC after:	3 weeks
2009-04-23 13:08:47 +00:00
..
2008-07-25 23:58:09 +00:00
2008-08-25 20:43:13 +00:00
2009-04-02 13:02:12 +00:00
2007-12-09 20:47:12 +00:00
2008-03-17 01:26:44 +00:00
2009-04-14 23:05:36 +00:00
2009-04-14 23:05:36 +00:00