• Jan Harkes's avatar
    [PATCH] 2.5.6-pre2 - Coda fixes and cleanups · 839e0e16
    Jan Harkes authored
    Here is a batch of accumulated bugfixes and cleanups for the Coda kernel
    module. Patch is against 2.5.6-pre2, I could also send these as separate
    patches.
    
    bugfix: Fix coda_dentry_revalidate bug
    
        Due to a bad test, coda_dentry_revalidate was forcing revalidation
        of cacheable inodes, and allowed caching of non-cacheable inodes.
    
    bugfix: Corrected i_mtime/i_ctime setting
    
        i_mtime and i_ctime were not always updated when writing to a file,
        or when modifying inode attributes.
    
    cleanup/optimization: Avoid getattr upcalls
    
        We can use coda_iget directly instead of coda_cnode_make when an
        upcall returns attributes and avoid the getattr upcall altogether.
    
    cleanup: Removed debugging messages
    
        CDEBUG macros haven't been useful ever since the initial development
        when they were introduced. They are too verbose for debugging
        purposes. Removing these saves about a third of the compiled size of
        the module.
    
        Removed print_entry variable that was used by ENTRY/EXIT macros
        which are already gone.
    
    cleanup/optimization: Readdir simplification
    
        Relying on the fact that the pagecache is already buffering far more
        efficiently, simplified coda_readdir implementation. We can now fill
        the complete userbuffer instead of returning after reading only 2KB.
    
        Passing dir entry types that are present in the venus_dirent
        structure to the user as well.
    
    cleanup: Removed redundant permissions statistics counters.
    
        The permission check count is about identical to the 'permission'
        field in the VFS stats, and the permission hit counter can trivially
        be derived from upcall_stats.access - vfs_stats.permission. Removed
        these redundant counters.
    
    cleanup: Removed useless test for c_flags in coda_revalidate_inode.
    
        We already know c_flags is set due to earlier tests.
    839e0e16
upcall.c 25 KB