From: Sage Weil Date: Sat, 5 Feb 2011 04:45:58 +0000 (-0800) Subject: ceph: queue cap_snaps once per realm X-Git-Tag: v2.6.38-rc6~10^2~1 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e8e1ba96b207deba1339b09983f8b29f92cb1497;p=pandora-kernel.git ceph: queue cap_snaps once per realm We were forming a dirty list, and then queueing cap_snaps for each realm _and_ its children, regardless of whether the children were already in the dirty list. This meant we did it twice for some realms. Which in turn meant we corrupted mdsc->snap_flush_list when the cap_snap was re-added to the list it was already on, and could trigger an infinite loop. We were also using recursion to do reach all the children, a no-no when stack is limited. Instead, (re)queue any children on the dirty list, avoiding processing anything twice and avoiding any recursion. Signed-off-by: Sage Weil --- Reading git-diff-tree failed