GOTO(out_up, dchild);
}
- err = ll_vfs_mkdir(dir->d_inode, dchild, mnt, mode);
+ err = vfs_mkdir(dir->d_inode, dchild, mode);
if (err)
GOTO(out_err, err);
* So keep it there before we have suitable solution. */
brelse(bh);
+ mutex_unlock(&dir->i_mutex);
+ mutex_unlock(&src_parent->i_mutex);
+
+ rc = -EEXIST;
/* If the src object has never been modified, then remove it. */
if (inode->i_size == 0 && inode->i_mode & S_ISUID &&
inode->i_mode & S_ISGID)
- ll_vfs_unlink(src_parent, src_child, osd->od_mnt);
- GOTO(unlock_src, rc = 0);
+ rc = vfs_unlink(src_parent, src_child);
+ ldiskfs_journal_stop(jh);
+ RETURN(rc);
}
bh = osd_ldiskfs_find_entry(src_parent, src_child, &de, NULL);
unlock:
mutex_unlock(&dir->i_mutex);
-
-unlock_src:
mutex_unlock(&src_parent->i_mutex);
ldiskfs_journal_stop(jh);
return rc;