From: Chas Williams Date: Mon, 23 Apr 2001 08:51:36 +0000 (+0000) Subject: STABLE10-linux-call-truncate-inode-pages-in-preference-to-invalidate-inode-pages... X-Git-Tag: openafs-stable-1_0_4~10 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=5776432cdce7cfb053e97d3a18a18a81317feca5;p=packages%2Fo%2Fopenafs.git STABLE10-linux-call-truncate-inode-pages-in-preference-to-invalidate-inode-pages-20010423 truncate inode pages rather than invalidating --- diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c index d9b05158f..1f2216113 100644 --- a/src/afs/LINUX/osi_misc.c +++ b/src/afs/LINUX/osi_misc.c @@ -302,7 +302,11 @@ void osi_linux_free_inode_pages(void) #else if (ip->i_nrpages) { #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,15) + truncate_inode_pages(&ip->i_data, 0); +#else invalidate_inode_pages(ip); +#endif #if defined(AFS_LINUX24_ENV) if (ip->i_data.nrpages) { #else diff --git a/src/afs/LINUX/osi_vm.c b/src/afs/LINUX/osi_vm.c index 2b8fbb793..927d99245 100644 --- a/src/afs/LINUX/osi_vm.c +++ b/src/afs/LINUX/osi_vm.c @@ -45,7 +45,11 @@ int osi_VM_FlushVCache(struct vcache *avc, int *slept) if (avc->opens != 0) return EBUSY; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,15) + truncate_inode_pages(&ip->i_data, 0); +#else invalidate_inode_pages(ip); +#endif return 0; } @@ -60,7 +64,13 @@ int osi_VM_FlushVCache(struct vcache *avc, int *slept) */ void osi_VM_TryToSmush(struct vcache *avc, struct AFS_UCRED *acred, int sync) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,15) + struct inode *ip = (struct inode*)avc; + + truncate_inode_pages(&ip->i_data, 0); +#else invalidate_inode_pages((struct inode *)avc); +#endif } /* Flush and invalidate pages, for fsync() with INVAL flag @@ -88,7 +98,13 @@ void osi_VM_StoreAllSegments(struct vcache *avc) */ void osi_VM_FlushPages(struct vcache *avc, struct AFS_UCRED *credp) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,15) + struct inode *ip = (struct inode*)avc; + + truncate_inode_pages(&ip->i_data, 0); +#else invalidate_inode_pages((struct inode*)avc); +#endif } /* Purge pages beyond end-of-file, when truncating a file. @@ -99,5 +115,11 @@ void osi_VM_FlushPages(struct vcache *avc, struct AFS_UCRED *credp) */ void osi_VM_Truncate(struct vcache *avc, int alen, struct AFS_UCRED *acred) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,15) + struct inode *ip = (struct inode*)avc; + + truncate_inode_pages(&ip->i_data, alen); +#else invalidate_inode_pages((struct inode*)avc); +#endif }