On May 19 2007 03:18, Paul Dickson wrote: > >How about getting rid of the gotos: > > while (fs) { > locked = union_trylock(fs->root); > if (locked) { > locked = union_trylock(fs->altroot); > if (locked) { > locked = union_trylock(fs->pwd); > if (locked) > break; Suppose we break here... > else { > union_unlock(fs->altroot); > union_unlock(fs->root); > } > else > union_unlock(fs->root); > } > } > read_unlock(&fs->lock); > UM_DEBUG_LOCK("Failed to get all semaphores in fs_struct!\n"); > cpu_relax(); > read_lock(&fs->lock); > } > BUG_ON(!fs); Then no lock is released. Boom. Jan -- - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html