[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