0, &lsm, rec->ur_eadata);
if (rc)
GOTO(out_oa, rc);
+ } else {
+ /* Per-directory striping default code removed, because
+ * it uses the same unnamed EA storage as the directory
+ * striping for CMD. -p */
}
LASSERT(oa->o_gr >= FILTER_GROUP_FIRST_MDS);
rc = obd_create(mds->mds_osc_exp, oa, &lsm, &oti);
int mea_size, update_mode;
ENTRY;
+ DEBUG_REQ(D_INODE, req, "parent "LPU64"/%u name %*s mode %o",
+ rec->ur_fid1->id, rec->ur_fid1->generation,
+ rec->ur_namelen - 1, rec->ur_name, rec->ur_mode);
+
parent_lockh[0].cookie = 0;
parent_lockh[1].cookie = 0;
* should live at this MDS or at another one */
int i;
i = mea_name2idx(mea, rec->ur_name, rec->ur_namelen - 1);
- if (mea->mea_master != i) {
- CERROR("inapropriate MDS(%d) for %lu/%u:%s. should be %d\n",
- mea->mea_master, dparent->d_inode->i_ino,
- dparent->d_inode->i_generation, rec->ur_name, i);
+ if (mea->mea_master != mea->mea_fids[i].mds) {
+ CDEBUG(D_OTHER,
+ "%s: inapropriate MDS(%d) for %lu/%u:%s."
+ " should be %d(%d)\n", obd->obd_name,
+ mea->mea_master, dparent->d_inode->i_ino,
+ dparent->d_inode->i_generation, rec->ur_name,
+ mea->mea_fids[i].mds, i);
GOTO(cleanup, rc = -ERESTART);
}
}
unsigned long ino = rec->ur_fid2->id;
struct iattr iattr;
struct inode *inode;
-
- if ((rc = mds_try_to_split_dir(obd, dparent, &mea, 0))) {
- if (rc > 0) {
- /* dir got splitted */
- GOTO(cleanup, rc = -ERESTART);
- } else {
- /* error happened during spitting */
- GOTO(cleanup, rc);
- }
+ rc = mds_try_to_split_dir(obd, dparent, &mea, 0, update_mode);
+ CDEBUG(D_OTHER, "%s: splitted %lu/%u - %d\n",
+ obd->obd_name, dparent->d_inode->i_ino,
+ dparent->d_inode->i_generation, rc);
+ if (rc > 0) {
+ /* dir got splitted */
+ GOTO(cleanup, rc = -ERESTART);
+ } else if (rc < 0) {
+ /* error happened during spitting */
+ GOTO(cleanup, rc);
}
if (!(rec->ur_flags & MDS_OPEN_CREAT)) {
err);
}
} else if (created) {
+#if 0
mds_lock_new_child(obd, dchild->d_inode, NULL);
+#endif
}
l_dput(dchild);
case 1: