X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fafs%2FLINUX%2Fosi_vfsops.c;h=04ddafc9f0c90bb4fe2878589ddda6e3e5a3f959;hp=8abe6b149b1e74f7596a9ce0a74bc38d7a73588b;hb=76158df491f47de56d1febe1d1d2d17d316c9a74;hpb=2a2206bfe16815a6625fee4d37520e9676d88ab4 diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c index 8abe6b1..04ddafc 100644 --- a/src/afs/LINUX/osi_vfsops.c +++ b/src/afs/LINUX/osi_vfsops.c @@ -477,13 +477,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; } }