[Sheepdog] race window accessing current_vnode_info?
Liu Yuan
namei.unix at gmail.com
Thu May 3 09:06:46 CEST 2012
On 05/03/2012 02:16 PM, tao.peng at emc.com wrote:
> Hi list,
>
> I was reading sheepdog code and noticed that in update_vnode_info(),
> if one thread calls get_vnode_info() between
> put_vnode_info(current_vnode_info) and current_vnode_info =
> vnode_info, it then will get an invalid pointer. So it looks like a
> race window there?
>
> Best, Tao
Oops, it seems that we have brought in a big monster, we don't have any
lock mechanism to protect current_vnode_info, which is referenced and
calculated by worker threads and main thread scattered everywhere in the
code and it is really a dilemma to introduce such a ubiquitous lock
between worker and main threads.
Should we revert the patch introduce current_vnode_info?
Thanks,
Yuan
More information about the sheepdog
mailing list