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

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

      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().

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

              Created:
              Updated:
              Resolved: