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

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

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

            [LU-6195] osd-zfs: osd_declare_object_destroy() calls dmu_tx_hold_zap() with wrong keys

            Isaac Huang (he.huang@intel.com) uploaded a new patch: http://review.whamcloud.com/13656
            Subject: LU-6195 osd-zfs: dmu_tx_hold_zap() called with wrong keys
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: fd8fb80c6f71fedc476e82008fd309f9f4f8b418

            gerrit Gerrit Updater added a comment - Isaac Huang (he.huang@intel.com) uploaded a new patch: http://review.whamcloud.com/13656 Subject: LU-6195 osd-zfs: dmu_tx_hold_zap() called with wrong keys Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: fd8fb80c6f71fedc476e82008fd309f9f4f8b418

            Looks like just replace buf with NULL, and zap_count_write() will use worst-case estimate - should be good enough until we have in-zfs accounting.

            isaac Isaac Huang (Inactive) added a comment - Looks like just replace buf with NULL , and zap_count_write() will use worst-case estimate - should be good enough until we have in-zfs accounting.

            Yes, but it's going be a while until we have in-zfs accounting.

            isaac Isaac Huang (Inactive) added a comment - Yes, but it's going be a while until we have in-zfs accounting.

            didn't we plan to replace this code with in-zfs accounting?

            bzzz Alex Zhuravlev added a comment - didn't we plan to replace this code with in-zfs accounting?

            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: