Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-7263

object leak in mdt_reint_rename_internal()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.8.0
    • Lustre 2.8.0
    • 3
    • 9223372036854775807

    Description

      In mdt_reint_rename_internal() if the mnew object is remote then it gets leaked. The last goto label below should be out_put_new:

                      if (!fid_is_md_operative(new_fid))
                              GOTO(out_put_old, rc = -EPERM);
      
                      mnew = mdt_object_find(info->mti_env, info->mti_mdt, new_fid);
                      if (IS_ERR(mnew))
                              GOTO(out_put_old, rc = PTR_ERR(mnew));
      
                      if (mdt_object_remote(mnew)) {
                              struct mdt_body  *repbody;
      
                              /* Always send rename req to the target child MDT */
                              repbody = req_capsule_server_get(info->mti_pill,
                                                               &RMF_MDT_BODY);
                              LASSERT(repbody != NULL);
                              repbody->mbo_fid1 = *new_fid;
                              repbody->mbo_valid |= (OBD_MD_FLID | OBD_MD_MDS);
                              GOTO(out_put_old, rc = -EXDEV);
                      }
      

      This leak is reachable.

      Attachments

        Activity

          People

            jhammond John Hammond
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: