/*
* send response built from mdr contents and error code; clean up mdr
*/
-void Server::reply_request(MDRequestRef& mdr, int r)
+void Server::respond_to_request(MDRequestRef& mdr, int r)
{
reply_client_request(mdr, new MClientReply(mdr->client_request, r));
}
default:
dout(1) << " unknown client op " << req->get_op() << dendl;
- reply_request(mdr, -EOPNOTSUPP);
+ respond_to_request(mdr, -EOPNOTSUPP);
}
}
// make sure parent is a dir?
if (!diri->is_dir()) {
dout(7) << "validate_dentry_dir: not a dir" << dendl;
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return NULL;
}
// name already exists
dout(10) << "dentry " << dname << " exists in " << *dir << dendl;
if (!okexist) {
- reply_request(mdr, -EEXIST);
+ respond_to_request(mdr, -EEXIST);
return 0;
}
}
// figure parent dir vs dname
if (refpath.depth() == 0) {
dout(7) << "can't do that to root" << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return 0;
}
string dname = refpath.last_dentry();
int r = mdcache->path_traverse(mdr, NULL, NULL, refpath, &trace, &diri, MDS_TRAVERSE_FORWARD);
if (r > 0) return 0; // delayed
if (r < 0) {
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
return 0;
}
C_MDS_TryFindInode(Server *s, MDRequestRef& r) : ServerContext(s), mdr(r) {}
virtual void finish(int r) {
if (r == -ESTALE) // :( find_ino_peers failed
- server->reply_request(mdr, r);
+ server->respond_to_request(mdr, r);
else
server->dispatch_client_request(mdr);
}
if (r == -ENOENT && n == 0 && mdr->dn[n].size()) {
if (!no_lookup)
mdr->tracedn = mdr->dn[n][mdr->dn[n].size()-1];
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
} else if (r == -ESTALE) {
dout(10) << "FAIL on ESTALE but attempting recovery" << dendl;
MDSInternalContextBase *c = new C_MDS_TryFindInode(this, mdr);
mdcache->find_ino_peers(refpath.get_ino(), c);
} else {
dout(10) << "FAIL on error " << r << dendl;
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
}
return 0;
}
CInode *diri = dir->get_inode();
if (!mdr->reqid.name.is_mds()) {
if (diri->is_system() && !diri->is_root()) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return 0;
}
if (!diri->is_base() && diri->get_projected_parent_dir()->inode->is_stray()) {
- reply_request(mdr, -ENOENT);
+ respond_to_request(mdr, -ENOENT);
return 0;
}
}
// exists?
if (!dn || dn->get_linkage(client, mdr)->is_null()) {
dout(7) << "dentry " << dname << " dne in " << *dir << dendl;
- reply_request(mdr, -ENOENT);
+ respond_to_request(mdr, -ENOENT);
return 0;
}
} else {
if (req->get_filepath().depth() == 0 && is_lookup) {
// refpath can't be empty for lookup but it can for
// getattr (we do getattr with empty refpath for mount of '/')
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
mdr->tracei = ref;
if (is_lookup)
mdr->tracedn = mdr->dn[0].back();
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
struct C_MDS_LookupIno2 : public ServerContext {
inodeno_t ino = req->get_filepath().get_ino();
CInode *in = mdcache->get_inode(ino);
if (in && in->state_test(CInode::STATE_PURGING)) {
- reply_request(mdr, -ESTALE);
+ respond_to_request(mdr, -ESTALE);
return;
}
if (!in) {
if (want_parent) {
if (in->is_base()) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (!diri || diri->is_stray()) {
- reply_request(mdr, -ESTALE);
+ respond_to_request(mdr, -ESTALE);
return;
}
dout(10) << "reply to lookup_parent " << *in << dendl;
mdr->tracei = diri;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
} else {
if (want_dentry) {
inodeno_t dirino = req->get_filepath2().get_ino();
if (!diri || (dirino != inodeno_t() && diri->ino() != dirino)) {
- reply_request(mdr, -ENOENT);
+ respond_to_request(mdr, -ENOENT);
return;
}
dout(10) << "reply to lookup_name " << *in << dendl;
mdr->tracei = in;
if (want_dentry)
mdr->tracedn = dn;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
}
// give up
if (r == -ENOENT || r == -ENODATA)
r = -ESTALE;
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
}
dout(7) << "open on " << req->get_filepath() << dendl;
if (cmode < 0) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
}
if (mdr->snapid != CEPH_NOSNAP && mdr->client_request->may_write()) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
}*/
if ((req->head.args.open.flags & O_DIRECTORY) && !cur->inode.is_dir()) {
dout(7) << "specified O_DIRECTORY on non-directory " << *cur << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (cur->inode.inline_version != CEPH_INLINE_NONE &&
!mdr->session->connection->has_feature(CEPH_FEATURE_MDS_INLINE_DATA)) {
dout(7) << "old client cannot open inline data file " << *cur << dendl;
- reply_request(mdr, -EPERM);
+ respond_to_request(mdr, -EPERM);
return;
}
if (mdr->snapid != CEPH_NOSNAP &&
(cmode & CEPH_FILE_MODE_WR)) {
dout(7) << "snap " << mdr->snapid << " is read-only " << *cur << dendl;
- reply_request(mdr, -EPERM);
+ respond_to_request(mdr, -EPERM);
return;
}
mdr->tracei = cur;
mdr->tracedn = dn;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
class C_MDS_openc_finish : public MDSInternalContext {
mds->balancer->hit_inode(mdr->get_mds_stamp(), newi, META_POP_IWR);
- mds->server->reply_request(mdr, 0);
+ mds->server->respond_to_request(mdr, 0);
assert(g_conf->mds_kill_openc_at != 1);
}
int cmode = ceph_flags_to_mode(req->head.args.open.flags);
if (cmode < 0) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
mdcache->find_ino_peers(req->get_filepath().get_ino(), c);
} else {
dout(10) << "FAIL on error " << r << dendl;
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
}
return;
}
!excl, false, false, &dir_layout);
if (!dn) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
// set layout
if (!ceph_file_layout_is_valid(&layout)) {
dout(10) << " invalid initial file layout" << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (!mds->mdsmap->is_data_pool(layout.fl_pg_pool)) {
dout(10) << " invalid data pool " << layout.fl_pg_pool << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
dout(10) << "O_EXCL, target exists, failing with -EEXIST" << dendl;
mdr->tracei = dnl->get_inode();
mdr->tracedn = dn;
- reply_request(mdr, -EEXIST);
+ respond_to_request(mdr, -EEXIST);
return;
}
if (!diri->is_dir()) {
// not a dir
dout(10) << "reply to " << *req << " readdir -ENOTDIR" << dendl;
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return;
}
// reply
mdr->tracei = diri;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
mds->balancer->hit_inode(mdr->get_mds_stamp(), in, META_POP_IWR);
- mds->server->reply_request(mdr, 0);
+ mds->server->respond_to_request(mdr, 0);
if (changed_ranges)
mds->locker->share_inode_max_size(in);
lock_state->remove_lock(set_lock, activated_locks);
cur->take_waiting(CInode::WAIT_FLOCK, waiters);
}
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
/* For now we're ignoring the activated locks because their responses
* will be sent when the lock comes up again in rotation by the MDS.
* It's a cheap hack, but it's easy to code. */
if (mdr->more()->flock_was_waiting &&
!lock_state->is_waiting(set_lock)) {
dout(10) << " was waiting for lock but not anymore, must have been canceled " << set_lock << dendl;
- reply_request(mdr, -EINTR);
+ respond_to_request(mdr, -EINTR);
} else if (!lock_state->add_lock(set_lock, will_wait, mdr->more()->flock_was_waiting)) {
dout(10) << " it failed on this attempt" << dendl;
// couldn't set lock right now
if (!will_wait) {
- reply_request(mdr, -EWOULDBLOCK);
+ respond_to_request(mdr, -EWOULDBLOCK);
} else {
dout(10) << " added to waiting list" << dendl;
assert(lock_state->is_waiting(set_lock));
cur->add_waiter(CInode::WAIT_FLOCK, new C_MDS_RetryRequest(mdcache, mdr));
}
} else
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
dout(10) << " state after lock change: " << *lock_state << dendl;
}
::encode(checking_lock, lock_bl);
mdr->reply_extra_bl = lock_bl;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
void Server::handle_client_setattr(MDRequestRef& mdr)
if (!cur) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
if (cur->ino() < MDS_INO_SYSTEM_BASE && !cur->is_base()) {
- reply_request(mdr, -EPERM);
+ respond_to_request(mdr, -EPERM);
return;
}
if (!cur) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
if (!cur->is_file()) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (cur->get_projected_inode()->size ||
cur->get_projected_inode()->truncate_seq > 1) {
- reply_request(mdr, -ENOTEMPTY);
+ respond_to_request(mdr, -ENOTEMPTY);
return;
}
}
if (!ceph_file_layout_is_valid(&layout)) {
dout(10) << "bad layout" << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (!mds->mdsmap->is_data_pool(layout.fl_pg_pool)) {
dout(10) << " invalid data pool " << layout.fl_pg_pool << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (!cur) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
if (!cur->is_dir()) {
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return;
}
}
if (!ceph_file_layout_is_valid(&layout)) {
dout(10) << "bad layout" << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (!mds->mdsmap->is_data_pool(layout.fl_pg_pool)) {
dout(10) << " invalid data pool " << layout.fl_pg_pool << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
int64_t old_pool = -1;
if (name.find("ceph.dir.layout") == 0) {
if (!cur->is_dir()) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
}
r = -EINVAL;
}
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
return;
}
cur->get_projected_inode()->layout = layout;
} else {
if (!cur->is_file()) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
ceph_file_layout layout = cur->get_projected_inode()->layout;
}
r = -EINVAL;
}
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
return;
}
}
dout(10) << " unknown vxattr " << name << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
}
void Server::handle_remove_vxattr(MDRequestRef& mdr, CInode *cur,
string name(req->get_path2());
if (name == "ceph.dir.layout") {
if (!cur->is_dir()) {
- reply_request(mdr, -ENODATA);
+ respond_to_request(mdr, -ENODATA);
return;
}
if (cur->is_root()) {
dout(10) << "can't remove layout policy on the root directory" << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
if (!cur->get_projected_inode()->has_layout()) {
- reply_request(mdr, -ENODATA);
+ respond_to_request(mdr, -ENODATA);
return;
}
return;
}
- reply_request(mdr, -ENODATA);
+ respond_to_request(mdr, -ENODATA);
}
class C_MDS_inode_xattr_update_finish : public MDSInternalContext {
mds->balancer->hit_inode(mdr->get_mds_stamp(), in, META_POP_IWR);
- mds->server->reply_request(mdr, 0);
+ mds->server->respond_to_request(mdr, 0);
}
};
return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
map<string, bufferptr> *pxattrs = cur->get_projected_xattrs();
if ((flags & CEPH_XATTR_CREATE) && pxattrs->count(name)) {
dout(10) << "setxattr '" << name << "' XATTR_CREATE and EEXIST on " << *cur << dendl;
- reply_request(mdr, -EEXIST);
+ respond_to_request(mdr, -EEXIST);
return;
}
if ((flags & CEPH_XATTR_REPLACE) && !pxattrs->count(name)) {
dout(10) << "setxattr '" << name << "' XATTR_REPLACE and ENODATA on " << *cur << dendl;
- reply_request(mdr, -ENODATA);
+ respond_to_request(mdr, -ENODATA);
return;
}
return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
map<string, bufferptr> *pxattrs = cur->get_projected_xattrs();
if (pxattrs->count(name) == 0) {
dout(10) << "removexattr '" << name << "' and ENODATA on " << *cur << dendl;
- reply_request(mdr, -ENODATA);
+ respond_to_request(mdr, -ENODATA);
return;
}
mds->balancer->hit_inode(mdr->get_mds_stamp(), newi, META_POP_IWR);
// reply
- mds->server->reply_request(mdr, 0);
+ mds->server->respond_to_request(mdr, 0);
}
};
&dir_layout);
if (!dn) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
CInode *diri = dn->get_dir()->get_inode();
CDentry *dn = rdlock_path_xlock_dentry(mdr, 0, rdlocks, wrlocks, xlocks, false, false, false);
if (!dn) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
CInode *diri = dn->get_dir()->get_inode();
CDentry *dn = rdlock_path_xlock_dentry(mdr, 0, rdlocks, wrlocks, xlocks, false, false, false);
if (!dn) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
CInode *diri = dn->get_dir()->get_inode();
CInode *targeti = rdlock_path_pin_ref(mdr, 1, rdlocks, false);
if (!targeti) return;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
dout(7) << "target is " << *targeti << dendl;
if (targeti->is_dir()) {
dout(7) << "target is a dir, failing..." << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
mds->balancer->hit_dir(mdr->get_mds_stamp(), dn->get_dir(), META_POP_IWR);
// reply
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
mds->balancer->hit_dir(mdr->get_mds_stamp(), dn->get_dir(), META_POP_IWR);
// reply
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
if (!inc)
// removing a new dn?
if (req->get_op() == CEPH_MDS_OP_RMDIR) rmdir = true;
if (req->get_filepath().depth() == 0) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
int r = mdcache->path_traverse(mdr, NULL, NULL, req->get_filepath(), &trace, &in, MDS_TRAVERSE_FORWARD);
if (r > 0) return;
if (r < 0) {
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
return;
}
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
if (rmdir) {
// do empty directory checks
if (_dir_is_nonempty_unlocked(mdr, in)) {
- reply_request(mdr, -ENOTEMPTY);
+ respond_to_request(mdr, -ENOTEMPTY);
return;
}
} else {
dout(7) << "handle_client_unlink on dir " << *in << ", returning error" << dendl;
- reply_request(mdr, -EISDIR);
+ respond_to_request(mdr, -EISDIR);
return;
}
} else {
if (rmdir) {
// unlink
dout(7) << "handle_client_rmdir on non-dir " << *in << ", returning error" << dendl;
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return;
}
}
if (in->is_dir() &&
_dir_is_nonempty(mdr, in)) {
- reply_request(mdr, -ENOTEMPTY);
+ respond_to_request(mdr, -ENOTEMPTY);
return;
}
mds->balancer->hit_dir(mdr->get_mds_stamp(), dn->get_dir(), META_POP_IWR);
// reply
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
// clean up?
if (straydn)
filepath destpath = req->get_filepath();
filepath srcpath = req->get_filepath2();
if (destpath.depth() == 0 || srcpath.depth() == 0) {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
const string &destname = destpath.last_dentry();
if (!destdn) return;
dout(10) << " destdn " << *destdn << dendl;
if (mdr->snapid != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
CDentry::linkage_t *destdnl = destdn->get_projected_linkage();
mdcache->find_ino_peers(srcpath.get_ino(), new C_MDS_TryFindInode(this, mdr));
} else {
dout(10) << "FAIL on error " << r << dendl;
- reply_request(mdr, r);
+ respond_to_request(mdr, r);
}
return;
CDentry *srcdn = srctrace[srctrace.size()-1];
dout(10) << " srcdn " << *srcdn << dendl;
if (srcdn->last != CEPH_NOSNAP) {
- reply_request(mdr, -EROFS);
+ respond_to_request(mdr, -EROFS);
return;
}
CDentry::linkage_t *srcdnl = srcdn->get_projected_linkage();
// mv /some/thing /to/some/existing_other_thing
if (oldin->is_dir() && !srci->is_dir()) {
- reply_request(mdr, -EISDIR);
+ respond_to_request(mdr, -EISDIR);
return;
}
if (!oldin->is_dir() && srci->is_dir()) {
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return;
}
// non-empty dir?
if (oldin->is_dir() && _dir_is_nonempty_unlocked(mdr, oldin)) {
- reply_request(mdr, -ENOTEMPTY);
+ respond_to_request(mdr, -ENOTEMPTY);
return;
}
if (srci == oldin && !srcdn->get_dir()->inode->is_stray()) {
- reply_request(mdr, 0); // no-op. POSIX makes no sense.
+ respond_to_request(mdr, 0); // no-op. POSIX makes no sense.
return;
}
}
// src == dest?
if (srcdn->get_dir() == destdir && srcdn->name == destname) {
dout(7) << "rename src=dest, noop" << dendl;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
return;
}
while (pdn) {
if (pdn == srcdn) {
dout(7) << "cannot rename item to be a child of itself" << dendl;
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
pdn = pdn->get_dir()->inode->parent;
MDS_INO_IS_STRAY(destpath.get_ino())) &&
!(destdnl->is_remote() &&
destdnl->get_remote_ino() == srci->ino())) {
- reply_request(mdr, -EINVAL); // actually, this won't reply, but whatev.
+ respond_to_request(mdr, -EINVAL); // actually, this won't reply, but whatev.
return;
}
if (oldin &&
oldin->is_dir() &&
_dir_is_nonempty(mdr, oldin)) {
- reply_request(mdr, -ENOTEMPTY);
+ respond_to_request(mdr, -ENOTEMPTY);
return;
}
assert(g_conf->mds_kill_rename_at != 7);
// reply
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
if (need_eval)
mds->locker->eval(in, CEPH_CAP_LOCKS, true);
// traverse to path
CInode *diri = mdcache->get_inode(req->get_filepath().get_ino());
if (!diri || diri->state_test(CInode::STATE_PURGING)) {
- reply_request(mdr, -ESTALE);
+ respond_to_request(mdr, -ESTALE);
return;
}
if (!diri->is_auth()) {
return;
}
if (!diri->is_dir()) {
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return;
}
dout(10) << "lssnap on " << *diri << dendl;
mdr->reply_extra_bl = dirbl;
mdr->tracei = diri;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
{
if (!mds->mdsmap->allows_snaps()) {
// you can't make snapshots until you set an option right now
- reply_request(mdr, -EPERM);
+ respond_to_request(mdr, -EPERM);
return;
}
MClientRequest *req = mdr->client_request;
CInode *diri = mdcache->get_inode(req->get_filepath().get_ino());
if (!diri || diri->state_test(CInode::STATE_PURGING)) {
- reply_request(mdr, -ESTALE);
+ respond_to_request(mdr, -ESTALE);
return;
}
// dir only
if (!diri->is_dir()) {
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return;
}
if (diri->is_system() && !diri->is_root()) {
// no snaps in system dirs (root is ok)
- reply_request(mdr, -EPERM);
+ respond_to_request(mdr, -EPERM);
return;
}
if (mdr->client_request->get_caller_uid() < g_conf->mds_snap_min_uid || mdr->client_request->get_caller_uid() > g_conf->mds_snap_max_uid) {
dout(20) << "mksnap " << snapname << " on " << *diri << " denied to uid " << mdr->client_request->get_caller_uid() << dendl;
- reply_request(mdr, -EPERM);
+ respond_to_request(mdr, -EPERM);
return;
}
// make sure name is unique
if (diri->snaprealm &&
diri->snaprealm->exists(snapname)) {
- reply_request(mdr, -EEXIST);
+ respond_to_request(mdr, -EEXIST);
return;
}
if (snapname.length() == 0 ||
snapname[0] == '_') {
- reply_request(mdr, -EINVAL);
+ respond_to_request(mdr, -EINVAL);
return;
}
mdr->snapid = info.snapid;
mdr->reply_snapbl = diri->snaprealm->get_snap_trace();
mdr->tracei = diri;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}
CInode *diri = mdcache->get_inode(req->get_filepath().get_ino());
if (!diri || diri->state_test(CInode::STATE_PURGING)) {
- reply_request(mdr, -ESTALE);
+ respond_to_request(mdr, -ESTALE);
return;
}
if (!diri->is_auth()) { // fw to auth?
return;
}
if (!diri->is_dir()) {
- reply_request(mdr, -ENOTDIR);
+ respond_to_request(mdr, -ENOTDIR);
return;
}
if (mdr->client_request->get_caller_uid() < g_conf->mds_snap_min_uid || mdr->client_request->get_caller_uid() > g_conf->mds_snap_max_uid) {
dout(20) << "rmsnap " << snapname << " on " << *diri << " denied to uid " << mdr->client_request->get_caller_uid() << dendl;
- reply_request(mdr, -EPERM);
+ respond_to_request(mdr, -EPERM);
return;
}
// does snap exist?
if (snapname.length() == 0 || snapname[0] == '_') {
- reply_request(mdr, -EINVAL); // can't prune a parent snap, currently.
+ respond_to_request(mdr, -EINVAL); // can't prune a parent snap, currently.
return;
}
if (!diri->snaprealm || !diri->snaprealm->exists(snapname)) {
- reply_request(mdr, -ENOENT);
+ respond_to_request(mdr, -ENOENT);
return;
}
snapid_t snapid = diri->snaprealm->resolve_snapname(snapname, diri->ino());
// yay
mdr->in[0] = diri;
- reply_request(mdr, 0);
+ respond_to_request(mdr, 0);
}