X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fafs%2FLINUX24%2Fosi_vfsops.c;h=702177c0a3dfcf28d33685da9680abd27074cd60;hp=ea4a7bebfa6103ab231a01afd706b2e904f3128c;hb=76158df491f47de56d1febe1d1d2d17d316c9a74;hpb=c37b9230c5ce845483d573efbb19e41d5b5cc48f diff --git a/src/afs/LINUX24/osi_vfsops.c b/src/afs/LINUX24/osi_vfsops.c index ea4a7be..702177c 100644 --- a/src/afs/LINUX24/osi_vfsops.c +++ b/src/afs/LINUX24/osi_vfsops.c @@ -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; } }