[PATCH] fix hang in __get_metapage (2 of 2)

[email protected] Thu, 27 May 2004 10:06:11 -0500
Newsgroups gmane.comp.file-systems.jfs.patches
Message-ID <[email protected]>
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/05/27 09:31:09-05:00 [email protected] 
#   JFS: fix hang in __get_metapage
#   
#   A previous patch to fix a race introduced a hang if more than one
#   thread is waiting for a "stale" metapage.
# 
diff -Nru a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
--- a/fs/jfs/jfs_metapage.c	2004-05-27 09:46:28 -05:00
+++ b/fs/jfs/jfs_metapage.c	2004-05-27 09:46:28 -05:00
@@ -239,6 +239,7 @@
 		spin_unlock(&meta_lock);
 		if (test_bit(META_stale, &mp->flag)) {
 			release_metapage(mp);
+			yield();	/* Let other waiters release it, too */
 			goto again;
 		}
 		if (test_bit(META_discard, &mp->flag)) {