In message <[EMAIL PROTECTED]>,"Marc 
Dionne" writes:
>Does this kernel have i_blksize in struct inode?
>afs_osi_Stat() has this recent patch to deal with the missing i_blksize:
>
> #ifdef STRUCT_INODE_HAS_I_BLKSIZE
>     astat->blksize = OSIFILE_INODE(afile)->i_blksize;
> #endif
>... so perhaps astat->blksize is never initialized?  The kernel code
>itself seems to use "(1 << inode->i_blkbits)" as a replacement for
>inode->i_blksize in fs/stat.c

this is acutally in the cache manager and has little to do with
the problem in question (atleast so i suspect).  i_blksize was
replaced by i_blkbits so there is some code missing.  vattr2inode() is
not updating i_blkbits.  there should probably be something like:

#ifdef STRUCT_INODE_HAS_I_BLKBITS
        ip->i_blkbits = 12;     /* comes from PAGESIZE */
#endif

i dont know a good fast way to do log2 in the kernel so.  it would
probably make more sense to just make va_blocksize use 4k blocks since
it doesnt particularly matter anyway.

as for afs_osi_Stat(), oddly enough it seems that osi_stat's blksize
member is not used in any meaningful way.  could just be eliminated
i imagine.

i dont think this will fix the df problem though.
_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to