libafs: Drop xvcache for AllocCBR
[openafs.git] / src / afs / LINUX24 / osi_vfsops.c
index ea4a7be..702177c 100644 (file)
@@ -97,9 +97,6 @@ afs_read_super(struct super_block *sb, void *data, int silent)
     sb->s_blocksize_bits = 10;
     sb->s_magic = AFS_VFSMAGIC;
     sb->s_op = &afs_sops;      /* Super block (vfs) ops */
-#if defined(HAVE_BDI_INIT)
-    bdi_init(&afs_backing_dev_info);
-#endif
 #if defined(MAX_NON_LFS)
 #ifdef AFS_64BIT_CLIENT
 #if !defined(MAX_LFS_FILESIZE)
@@ -133,9 +130,9 @@ afs_read_super(struct super_block *sb, void *data, int silent)
 static int
 afs_root(struct super_block *afsp)
 {
-    register afs_int32 code = 0;
+    afs_int32 code = 0;
     struct vrequest treq;
-    register struct vcache *tvp = 0;
+    struct vcache *tvp = 0;
 
     AFS_STATCNT(afs_root);
     if (afs_globalVp && (afs_globalVp->f.states & CStatd)) {
@@ -205,7 +202,7 @@ afs_notify_change(struct dentry *dp, struct iattr *iattrp)
 }
 
 
-#if defined(STRUCT_SUPER_HAS_ALLOC_INODE)
+#if defined(STRUCT_SUPER_OPERATIONS_HAS_ALLOC_INODE)
 #if defined(HAVE_KMEM_CACHE_T)
 static kmem_cache_t *afs_inode_cachep;
 #else
@@ -307,7 +304,7 @@ afs_clear_inode(struct inode *ip)
     if (vcp->hnext)
        osi_Panic("inode freed while still hashed");
 
-#if !defined(STRUCT_SUPER_HAS_ALLOC_INODE)
+#if !defined(STRUCT_SUPER_OPERATIONS_HAS_ALLOC_INODE)
     afs_osi_Free(ip->u.generic_ip, sizeof(struct vcache));
 #endif
 }
@@ -335,9 +332,6 @@ afs_put_super(struct super_block *sbp)
 #endif
 
     osi_linux_verify_alloced_memory();
-#if defined(HAVE_BDI_INIT)
-    bdi_destroy(&afs_backing_dev_info);
-#endif
     AFS_GUNLOCK();
 
     sbp->s_dev = 0;
@@ -391,7 +385,7 @@ afs_statfs(struct super_block *sbp, struct statfs *__statp, int size)
 }
 
 struct super_operations afs_sops = {
-#if defined(STRUCT_SUPER_HAS_ALLOC_INODE)
+#if defined(STRUCT_SUPER_OPERATIONS_HAS_ALLOC_INODE)
   .alloc_inode =       afs_alloc_inode,
   .destroy_inode =     afs_destroy_inode,
 #endif
@@ -471,13 +465,17 @@ osi_linux_free_inode_pages(void)
     struct vcache *tvc, *nvc;
     extern struct vcache *afs_vhashT[VCSIZE];
 
+ retry:
     for (i = 0; i < VCSIZE; i++) {
        for (tvc = afs_vhashT[i]; tvc; ) {
            int slept;
        
            nvc = tvc->hnext;
-           if (afs_FlushVCache(tvc, &slept))           /* slept always 0 for linux? */
+           if (afs_FlushVCache(tvc, &slept))
                printf("Failed to invalidate all pages on inode 0x%p\n", tvc);
+           if (slept) {
+               goto retry;
+           }
            tvc = nvc;
        }
     }