On Tuesday, April 26, 2011 8:17:09 pm Bartosz Fabianowski wrote: > > If you needs per-file private data for cdev, you would be better served > > by cdevpriv(9) KPI. Cloning is too hard to use correctly for such task. > > Thanks, I just got that working. To help those going down a similar path > in the future, I would like to note quickly that the following must be > added to the cdevsw structure to ensure proper clean-up: > > .d_flags = D_TRACKCLOSE > > I just spent hours debugging panics until I realized only the last > close() was triggering a call to my .d_close method.
Err, if you use cdevpriv you shouldn't even have a d_close method. All your d_close logic should be in the cdevpriv destructor, and the kernel will call your destructor when all references to an open file descriptor go away (i.e. it is closed). -- John Baldwin _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"