Re: BUG in shared_policy_replace() ?

From: Steve Longerbeam
Date: Wed Jan 19 2005 - 12:47:22 EST




Hugh Dickins wrote:

On Tue, 18 Jan 2005, Steve Longerbeam wrote:


Why free the shared policy created to split up an old
policy that spans the whole new range? Ie, see patch.



I think you're misreading it. That code comes from when I changed it
over from sp->sem to sp->lock. If it finds that it needs to split an
existing range, so needs to allocate a new2, then it has to drop and
reacquire the spinlock around that. It's conceivable that a racing
task could change the tree while the spinlock is dropped, in such a
way that this split is no longer necessary once we reacquire the
spinlock. The code you're looking at frees up new2 in that case;
whereas in the normal case, where it is still needed, there's a
new2 = NULL after inserting it, so that it won't be freed below.



got it, except that there is no "new2 = NULL;" in 2.6.10-mm2!

Looks like it was misplaced, because I do see it now in 2.6.10.

Steve

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/