Get rid of lov_stripe_md reference in setting file's stripe info.
Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Change-Id: I303bfc98113bf1f086053225959001377879637a
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-on: http://review.whamcloud.com/12639
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
__u64 flags, struct lov_user_md *lum,
int lum_size)
{
__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,
struct lookup_intent oit = {
.it_op = IT_OPEN,
.it_flags = flags | MDS_OPEN_BY_FID,
- 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);
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);
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);
cl_lov_delay_create_clear(&file->f_flags);
RETURN(rc);
+ /* We should not change file's existing LOV EA */
+ if (S_ISREG(lu_object_attr(&o->mot_obj)) &&
+ flags & MDS_OPEN_HAS_EA && ma->ma_valid & MA_LOV)
+ GOTO(out, rc = -EEXIST);
+
/* If a release request, check file flags are fine and ask for an
* exclusive open access. */
if (flags & MDS_OPEN_RELEASE && !mdt_hsm_release_allow(ma))
/* If a release request, check file flags are fine and ask for an
* exclusive open access. */
if (flags & MDS_OPEN_RELEASE && !mdt_hsm_release_allow(ma))