reply_request(mdr, -EINVAL);
return;
}
+ if (!mds->osdmap->have_pg_pool(layout.fl_pg_pool) ||
+ !mds->mdsmap->is_data_pg_pool(layout.fl_pg_pool)) {
+ dout(10) << " invalid data pool " << layout.fl_pg_pool << dendl;
+ reply_request(mdr, -EINVAL);
+ return;
+ }
xlocks.insert(&cur->filelock);
if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
delete layout;
return;
}
+ if (!mds->osdmap->have_pg_pool(layout->layout.fl_pg_pool) ||
+ !mds->mdsmap->is_data_pg_pool(layout->layout.fl_pg_pool)) {
+ dout(10) << " invalid data pool " << layout->layout.fl_pg_pool << dendl;
+ reply_request(mdr, -EINVAL);
+ delete layout;
+ return;
+ }
cur->project_inode();
cur->get_projected_node()->dir_layout = layout;