MCPcopy Create free account
hub / github.com/ceph/ceph / ll_getattrx

Method ll_getattrx

src/client/Client.cc:14683–14702  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14681}
14682
14683int Client::ll_getattrx(Inode *in, struct ceph_statx *stx, unsigned int want,
14684 unsigned int flags, const UserPerm& perms)
14685{
14686 RWRef_t mref_reader(mount_state, CLIENT_MOUNTING);
14687 if (!mref_reader.is_state_satisfied())
14688 return -ENOTCONN;
14689
14690 std::scoped_lock lock(client_lock);
14691
14692 int res = 0;
14693 unsigned mask = statx_to_mask(flags, want);
14694
14695 if (mask && !in->caps_issued_mask(mask, true))
14696 res = _ll_getattr(in, mask, perms);
14697
14698 if (res == 0)
14699 fill_statx(in, mask, stx);
14700 ldout(cct, 3) << __func__ << " " << _get_vino(in) << " = " << res << dendl;
14701 return res;
14702}
14703
14704int Client::_ll_setattrx(Inode *in, struct ceph_statx *stx, int mask,
14705 const UserPerm& perms, InodeRef *inp)

Callers 1

ceph_ll_getattrFunction · 0.80

Calls 2

is_state_satisfiedMethod · 0.80
caps_issued_maskMethod · 0.80

Tested by

no test coverage detected