struct obdo *oa = NULL;
int rc, mea_size = 0;
struct lustre_id id;
- void *handle;
+ void *handle;
ENTRY;
if (update_mode != LCK_EX)
*/
oa->o_id = dir->i_ino;
- down(&dir->i_sem);
+ /* get parent id: ldlm lock on the parent protects ea */
rc = mds_read_inode_sid(obd, dir, &id);
- up(&dir->i_sem);
if (rc) {
CERROR("Can't read inode self id, inode %lu, "
"rc %d.\n", dir->i_ino, rc);
cleanup_phase = 1; /* parent dentry and lock */
- /* get parent id: ldlm lock on the parent protects ea */
- rc = mds_read_inode_sid(obd, dparent->d_inode, &sid);
- if (rc) {
- CERROR("can't read parent inode id. ino(%lu) rc(%d)\n",
- dparent->d_inode->i_ino, rc);
- GOTO(cleanup, rc);
- }
-
/* try to retrieve MEA data for this dir */
rc = mds_md_get_attr(obd, dparent->d_inode, &mea, &mea_size);
if (rc)
struct iattr iattr;
struct inode *inode;
+ /* get parent id: ldlm lock on the parent protects ea */
+ rc = mds_read_inode_sid(obd, dparent->d_inode, &sid);
+ if (rc) {
+ CERROR("can't read parent inode id. ino(%lu) rc(%d)\n",
+ dparent->d_inode->i_ino, rc);
+ GOTO(cleanup, rc);
+ }
+
ino = (unsigned long)id_ino(rec->ur_id2);
rc = mds_try_to_split_dir(obd, dparent, &mea, 0,