}
if (pca && pca->pca_dataset) {
- struct pcc_dataset *dataset = pca->pca_dataset;
-
OBD_ALLOC_PTR(lum);
if (lum == NULL)
GOTO(out, retval = ERR_PTR(-ENOMEM));
lum->lmm_pattern = LOV_PATTERN_F_RELEASED | LOV_PATTERN_RAID0;
op_data->op_data = lum;
op_data->op_data_size = sizeof(*lum);
- op_data->op_archive_id = dataset->pccd_rwid;
-
- rc = obd_fid_alloc(NULL, ll_i2mdexp(parent), &op_data->op_fid2,
- op_data);
- if (rc)
- GOTO(out, retval = ERR_PTR(rc));
-
- rc = pcc_inode_create(parent->i_sb, dataset, &op_data->op_fid2,
- &pca->pca_dentry);
- if (rc)
- GOTO(out, retval = ERR_PTR(rc));
-
+ op_data->op_archive_id = pca->pca_dataset->pccd_rwid;
it->it_flags |= MDS_OPEN_PCC;
}
if (rc < 0)
GOTO(out, retval = ERR_PTR(rc));
+ if (pca && pca->pca_dataset) {
+ rc = pcc_inode_create(parent->i_sb, pca->pca_dataset,
+ &op_data->op_fid2,
+ &pca->pca_dentry);
+ if (rc)
+ GOTO(out, retval = ERR_PTR(rc));
+ }
+
/* dir layout may change */
ll_unlock_md_op_lsm(op_data);
rc = ll_lookup_it_finish(req, it, parent, &dentry,
op_data->op_mds = tgt->ltd_index;
} else {
LASSERT(fid_is_sane(&op_data->op_fid1));
- LASSERT(it->it_flags & MDS_OPEN_PCC ||
- fid_is_zero(&op_data->op_fid2));
+ LASSERT(fid_is_zero(&op_data->op_fid2));
LASSERT(op_data->op_name != NULL);
tgt = lmv_locate_tgt(lmv, op_data);
/* If it is ready to open the file by FID, do not need
* allocate FID at all, otherwise it will confuse MDT */
- if ((it->it_op & IT_CREAT) && !(it->it_flags & MDS_OPEN_BY_FID ||
- it->it_flags & MDS_OPEN_PCC)) {
+ if ((it->it_op & IT_CREAT) && !(it->it_flags & MDS_OPEN_BY_FID)) {
/*
* For lookup(IT_CREATE) cases allocate new fid and setup FLD
* for it.
update = thandle_to_osp_update_request(th);
LASSERT(update != NULL);
- LASSERT(attr->la_valid & LA_TYPE);
+ if (!(attr->la_valid & LA_TYPE)) {
+ CERROR("%s: create type not specified: valid %llx\n",
+ dt->do_lu.lo_dev->ld_obd->obd_name, attr->la_valid);
+ GOTO(out, rc = -EINVAL);
+ }
+
rc = OSP_UPDATE_RPC_PACK(env, out_create_pack, update,
lu_object_fid(&dt->do_lu), attr, hint, dof);
if (rc != 0)
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping
file=$DIR/$tdir/multiop
- mkdir -p $DIR/$tdir
+ $LFS mkdir -i -1 -c $MDSCOUNT $DIR/$tdir
rm -f $file
do_facet $SINGLEAGT $LFS project -sp $project_id $DIR/$tdir ||