Thread (5 messages) 5 messages, 3 authors, 2011-01-25

Re: [RFC][PATCH] radix_tree: radix_tree_gang_lookup_tag_slot may not return forever.

From: Toshiyuki Okajima <hidden>
Date: 2011-01-25 05:45:19
Also in: linux-fsdevel, lkml

Hi Andrew,

On Fri, 21 Jan 2011 15:31:54 -0800
Andrew Morton [off-list ref] wrote:
On Fri, 21 Jan 2011 15:34:31 +0900
Toshiyuki Okajima [off-list ref] wrote:
quoted
Hi.

I executed fsstress and then found that the system hung up.
At that time, I took the crash dump. Here is the backtrace of the process
which causes this hangup.

[long description]
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -736,10 +736,11 @@ next:
 		}
 	}
 	/*
-	 * The iftag must have been set somewhere because otherwise
-	 * we would return immediated at the beginning of the function
+	 * We need not to tag the root tag if there is no tag which is set with
+	 * settag within the range from *first_indexp to last_index.
 	 */
-	root_tag_set(root, settag);
+	if (tagged > 0)
+		root_tag_set(root, settag);
 	*first_indexp = index;
 
 	return tagged;
Thanks.
It should be fairly simple to reproduce this hang with the userspace
test harness (http://userweb.kernel.org/~akpm/stuff/rtth.tar.gz) and to
then demonstrate that the fix fixes it.

If you have time, could you please do that and then send the rtth
updates to me?
I add regression2_test for this bug into your testset (rtth.tar.gz).
This is originated from regression1_test.

Regards,
Toshiyuki Okajima

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help