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