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

lod_attr_set() skips attr_set on osp objects incorrectly

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.6.0
    • Lustre 2.6.0
    • 3
    • 14780

    Description

      This is a regression introduced by fix of LU-4690 "lod: separate master object with master stripe" (http://review.whamcloud.com/9511 commit 60e07b972114df24105a3a1bfa7365892f72a4a7).

      In lod_attr_set():

              for (i = 0; i < lo->ldo_stripenr; i++) {
                      LASSERT(lo->ldo_stripe[i]);
      +               if (dt_object_exists(lo->ldo_stripe[i]) == 0)
      +                       continue;
                      rc = dt_attr_set(env, lo->ldo_stripe[i], attr, handle, capa);
                      if (rc) {
                              CERROR("failed declaration: %d\n", rc);
      

      Since dt_object_exists() always return false for the osp object (for OST object), any attr_set to osp object will be skipped mistakenly, and chown/chgrp won't set UID/GID to OST objects at the end.

      As per Di's suggestion, we'd add additional IS_DIR checking here.

      Attachments

        Issue Links

          Activity

            People

              niu Niu Yawei (Inactive)
              niu Niu Yawei (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: