the new linux kernel has lost a couple more functions which affect openafs (generic_file_read/write). the attached patch lets me use openafs with the above-mentioned kernel. it is generated against the debian package (which finally works on amd64, yeay) but it applies against cvs head with a bit of fuzz.
diff -ru openafs/src/afs/LINUX/osi_vfsops.c openafs-new/src/afs/LINUX/osi_vfsops.c --- openafs/src/afs/LINUX/osi_vfsops.c 2006-08-19 22:34:18.000000000 -0700 +++ openafs-new/src/afs/LINUX/osi_vfsops.c 2006-10-05 16:45:36.000000000 -0700 @@ -312,8 +312,9 @@ void afs_destroy_inodecache(void) { - if (kmem_cache_destroy(afs_inode_cachep)) - printk(KERN_INFO "afs_inode_cache: not all structures were freed\n"); +/* if (kmem_cache_destroy(afs_inode_cachep)) + printk(KERN_INFO "afs_inode_cache: not all structures were freed\n");*/ + kmem_cache_destroy(afs_inode_cachep); } #else int diff -ru openafs/src/afs/LINUX/osi_vnodeops.c openafs-new/src/afs/LINUX/osi_vnodeops.c --- openafs/src/afs/LINUX/osi_vnodeops.c 2006-08-13 09:50:43.000000000 -0700 +++ openafs-new/src/afs/LINUX/osi_vnodeops.c 2006-10-05 19:04:33.000000000 -0700 @@ -75,7 +75,7 @@ else { osi_FlushPages(vcp, credp); /* ensure stale pages are gone */ AFS_GUNLOCK(); - code = generic_file_read(fp, buf, count, offp); + code = do_sync_read(fp, buf, count, offp); AFS_GLOCK(); } @@ -121,7 +121,7 @@ code = -code; else { AFS_GUNLOCK(); - code = generic_file_write(fp, buf, count, offp); + code = do_sync_write(fp, buf, count, offp); AFS_GLOCK(); } @@ -565,6 +565,7 @@ struct file_operations afs_file_fops = { .read = afs_linux_read, .write = afs_linux_write, + .aio_read = generic_file_aio_read, #ifdef HAVE_UNLOCKED_IOCTL .unlocked_ioctl = afs_unlocked_xioctl, #else
--alex-- -- | I believe the moment is at hand when, by a paranoiac and active | | advance of the mind, it will be possible (simultaneously with | | automatism and other passive states) to systematize confusion | | and thus to help to discredit completely the world of reality. |