[OpenAFS-devel] RE: [OpenAFS] linux 2.4.2

Derek Atkins warlord@MIT.EDU
18 Apr 2001 17:37:28 -0400


We could work around that if we wanted to.  If the AFS "stuff" is
smaller than the sizeof that union, we could use the 'generic_ip'
pointer and cast it to our AFS structure, thereby not wasting the AFS
space.  We would have a #define of something like:

#define LINUX_AFSINODE(inode) ((struct osi_afsinode *)&((inode)->u.generic_ip))

Then we could use:
	struct osi_afsinode *vnode = LINUX_AFSINODE(inode);

Actually, we could probably even just use 'u' itself as the casting
point, but the process remains the same.  The wonders of 'C' :)

-derek

Love <lha+openafs@stacken.kth.se> writes:

> "Neulinger, Nathan" <nneul@umr.edu> writes:
> 
> > *laugh* no actually - missed that... then why are we keeping a copy of
> > struct inode then if such a hook exists, couldn't we accomplish everything
> > just by attaching something to the hook?
> 
> Probably since using `struct inode' and `generic_ip' make you loose 200-300
> bytes for each inode. All the other filesystem data is still in the
> union. There have been talks on fs-devel to solve this.
> 
> Love
> _______________________________________________
> OpenAFS-devel mailing list
> OpenAFS-devel@openafs.org
> https://lists.openafs.org/mailman/listinfo.cgi/openafs-devel

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord@MIT.EDU                        PGP key available