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

lod_attr_set() skips attr_set on osp objects incorrectly

XMLWordPrintable

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

      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.

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

              Created:
              Updated:
              Resolved: