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

osd-zfs: osd_declare_object_destroy() calls dmu_tx_hold_zap() with wrong keys

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Minor
    • None
    • Lustre 2.7.0
    • None
    • 3
    • 17318

    Description

      In osd_declare_object_destroy():

              /* declare that we'll remove object from fid-dnode mapping */
              zapid = osd_get_name_n_idx(env, osd, fid, buf);
              dmu_tx_hold_bonus(oh->ot_tx, zapid);
              dmu_tx_hold_zap(oh->ot_tx, zapid, 0, buf);
      
              /* declare that we'll remove object from inode accounting ZAPs */
              dmu_tx_hold_bonus(oh->ot_tx, osd->od_iusr_oid);
              dmu_tx_hold_zap(oh->ot_tx, osd->od_iusr_oid, 0, buf);
              dmu_tx_hold_bonus(oh->ot_tx, osd->od_igrp_oid);
              dmu_tx_hold_zap(oh->ot_tx, osd->od_igrp_oid, 0, buf);
      

      The buf holds string representation of the FID, so it's wrong to use it in dmu_tx_hold_zap() calls for osd->od_iusr_oid and osd->od_igrp_oid where the keys should be obj->oo_attr.la_uid and obj->oo_attr.la_gid.

      Same mistake in osd_declare_object_create().

      Attachments

        Issue Links

          Activity

            People

              isaac Isaac Huang (Inactive)
              isaac Isaac Huang (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: