diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
index 77c4440..1d83549 100644
--- a/src/afs/LINUX/osi_vnodeops.c
+++ b/src/afs/LINUX/osi_vnodeops.c
@@ -308,7 +308,9 @@ afs_linux_readdir(struct file *fp, void *dirbuf, filldir_t filldir)
 		/* clean up from afs_FindVCache */
 		afs_PutVCache(tvc);
 	    }
+	    AFS_GUNLOCK();
 	    code = (*filldir) (dirbuf, de->name, len, offset, ino, type);
+	    AFS_GLOCK();
 	}
 #else
 	code = (*filldir) (dirbuf, de->name, len, offset, ino);
