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

missing unlock in error path of ll_lov_setstripe_ea_info()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.7.0
    • Lustre 2.7.0
    • 3
    • 16873

    Description

      In ll_lov_setstripe_ea_info() we forget to call ll_inode_size_unlock() in the out_req_free error path:

              ll_inode_size_lock(inode);
              oit.it_flags |= MDS_OPEN_BY_FID;
              rc = ll_intent_file_open(file, lum, lum_size, &oit);
              if (rc)
                      GOTO(out_unlock, rc);
              rc = oit.d.lustre.it_status;
              if (rc < 0)
                      GOTO(out_req_free, 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);
      out_req_free:
              ptlrpc_req_finished((struct ptlrpc_request *) oit.d.lustre.it_data);
              goto out;
      }
      

      This was found via code inspection. I didn't check if this path 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: