Bug #4679 » 0001-mds-pass-proper-mask-to-CInode-get_caps_issued.patch
src/mds/CInode.h | ||
---|---|---|
// caps issued, wanted
|
||
int get_caps_issued(int *ploner = 0, int *pother = 0, int *pxlocker = 0,
|
||
int shift = 0, int mask = 0xffff);
|
||
int shift = 0, int mask = -1);
|
||
bool is_any_caps_wanted();
|
||
int get_caps_wanted(int *ploner = 0, int *pother = 0, int shift = 0, int mask = 0xffff);
|
||
int get_caps_wanted(int *ploner = 0, int *pother = 0, int shift = 0, int mask = -1);
|
||
bool issued_caps_need_gather(SimpleLock *lock);
|
||
void replicate_relax_locks();
|
||
src/mds/Locker.cc | ||
---|---|---|
int loner_issued = 0, other_issued = 0, xlocker_issued = 0;
|
||
if (caps && in->is_head()) {
|
||
in->get_caps_issued(&loner_issued, &other_issued, &xlocker_issued, lock->get_cap_shift(), 3);
|
||
in->get_caps_issued(&loner_issued, &other_issued, &xlocker_issued,
|
||
lock->get_cap_shift(), lock->get_cap_mask());
|
||
dout(10) << " next state is " << lock->get_state_name(next)
|
||
<< " issued/allows loner " << gcap_string(loner_issued)
|
||
<< "/" << gcap_string(lock->gcaps_allowed(CAP_LONER, next))
|