| 14681 | } |
| 14682 | |
| 14683 | int 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 | |
| 14704 | int Client::_ll_setattrx(Inode *in, struct ceph_statx *stx, int mask, |
| 14705 | const UserPerm& perms, InodeRef *inp) |
no test coverage detected