LKC_SHARED
LKC_SHARED);
LKC_CANCEL | LKC_SHARED);
} else if ((count & LKC_SHARED) && (count & LKC_SMASK)) {
if (count & (LKC_EXREQ2 | LKC_SHARED))
ncount |= LKC_SHARED;
if ((count & LKC_SHARED) ||
(ncount & LKC_SHARED)) {
((count & LKC_SHARED) || (count & LKC_SMASK) == 0));
} else if ((count & LKC_SMASK) && (count & LKC_SHARED)) {
} else if ((count & LKC_SMASK) && (count & LKC_SHARED)) {
while ((count & LKC_SHARED) &&
if ((count & LKC_SHARED) &&
LKC_UPREQ | LKC_SHARED)) == 0) {
&count, count | LKC_SHARED)) {
(count & (LKC_XMASK | LKC_SHARED)) == 0) {
&count, count | LKC_SHARED)) {
if (count & LKC_SHARED)
if (count & LKC_SHARED)
((count & LKC_SHARED) == 0 ||
ncount = (count + 1) & ~LKC_SHARED;
ncount |= LKC_SHARED;
ncount = (count - LKC_SCOUNT + 1) & ~LKC_SHARED;
ncount |= LKC_SHARED;
KKASSERT((count & LKC_SHARED) && (count & LKC_SMASK));
~(LKC_UPREQ | LKC_CANCEL | LKC_SHARED);
LKC_CANCEL | LKC_SHARED);
if (ncp.nc_lock.lk_count & ~LKC_SHARED) {