20.09.2011 18:14, Myklebust, Trond пишет:
Doesn't it need to be protected by rpcb_clnt_lock too?
Nope from my pow. It's protected by rpcb_create_local_mutex. I.e. no one
will change rpcb_users since it's zero. If it's non zero - we willn't get to
rpcb_set_local().
OK, so you are saying that the rpcb_users++ below could be replaced by rpcb_users=1?
Yes, you right.
In that case, don't you need a smp_wmb() between the setting of rpcb_local_clnt/4 and the setting of rpcb_users? Otherwise, how do you guarantee that rpcb_users != 0 implies rpbc_local_clnt/4 != NULL?
We check rpcb_users under spinlock. Gain spinlock forces memory barrier, doesn't it?
--
Best regards,
Stanislav Kinsbursky
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html