__u64 flags, struct lov_user_md *lum,
int lum_size)
{
- struct lov_stripe_md *lsm = NULL;
struct lookup_intent oit = {
.it_op = IT_OPEN,
.it_flags = flags | MDS_OPEN_BY_FID,
int rc;
ENTRY;
- lsm = ccc_inode_lsm_get(inode);
- if (lsm != NULL) {
- ccc_inode_lsm_put(inode, lsm);
- CDEBUG(D_IOCTL, "stripe already exists for inode "DFID"\n",
- PFID(ll_inode2fid(inode)));
- GOTO(out, rc = -EEXIST);
- }
-
ll_inode_size_lock(inode);
rc = ll_intent_file_open(file, lum, lum_size, &oit);
if (rc < 0)
GOTO(out_unlock, rc);
- rc = oit.d.lustre.it_status;
- if (rc < 0)
- GOTO(out_unlock, rc);
-
ll_release_openhandle(file->f_dentry, &oit);
out_unlock:
ll_inode_size_unlock(inode);
ll_intent_release(&oit);
- ccc_inode_lsm_put(inode, lsm);
-out:
cl_lov_delay_create_clear(&file->f_flags);
RETURN(rc);