CSD_FLAG_LOCK
if (!(flags & CSD_FLAG_LOCK)) {
smp_cond_load_acquire(&csd->node.u_flags, !(VAL & CSD_FLAG_LOCK));
smp_cond_load_acquire(&csd->node.u_flags, !(VAL & CSD_FLAG_LOCK));
if (!(flags & CSD_FLAG_LOCK) &&
try_cmpxchg_acquire(&csd->node.u_flags, &flags, flags | CSD_FLAG_LOCK))
csd->node.u_flags |= CSD_FLAG_LOCK;
WARN_ON(!(csd->node.u_flags & CSD_FLAG_LOCK));
.node = { .u_flags = CSD_FLAG_LOCK | CSD_TYPE_SYNC, },
if (csd->node.u_flags & CSD_FLAG_LOCK) {
csd->node.u_flags = CSD_FLAG_LOCK;
return READ_ONCE(wd->csd.node.u_flags) & CSD_FLAG_LOCK;