Per-open file private data for the cdevs

Kostik Belousov kostikbel at gmail.com
Thu May 15 12:31:03 UTC 2008


On Thu, May 15, 2008 at 07:30:07AM -0400, John Baldwin wrote:
> On Wednesday 14 May 2008 05:32:23 am Kostik Belousov wrote:
> > So, I cannot implement overlay of the cdevpriv over the seqaccess data 
> > without some additional flag. On the other hand, use of 2 bytes for the
> > f_type is overkill when the range of the types is [1,8]. I divided it
> > to two one-byte fields, and new field is used for filetype-specific
> > flags.
> > 
> > http://people.freebsd.org/~kib/misc/fdpriv.4.patch
> > shall give the same size of the struct file while not causing unconditional
> > acquire of the cdevpriv_mtx on the last file close.
> > 
> > Jeff, do you agree with the proposed vivisection of the f_type ? I will
> > ask Peter to retest the patch then.
> 
> I would rather add the new pointer to struct file and avoid breaking the ABI 
> of fstat.  That is, I would like this patch to be MFCable, but you can't MFC 
> this w/o breaking the ABI of struct file since fstat(1) will be reading the 
> full short to get the DTYPE.

Oh, I thought that fstat uses struct xfile, at least for live systems.

I considered to introduce new f_type value for devfs files; the
DTYPE_VNODE is not a complete truth due to custom f_ops. But DTYPE_VNODE
is special-cased in enough locations to make this much less preferrable
then another pointer.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20080515/34135fee/attachment.pgp


More information about the freebsd-arch mailing list