Whamcloud - gitweb
LU-11838 scrub: handle s_uuid change to uuid_t
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_quota_fmt.c
index 0088d00..1883cd8 100644 (file)
@@ -21,7 +21,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2016, Intel Corporation.
  * Use is subject to license terms.
  *
  * Lustre administrative quota format.
@@ -64,28 +64,8 @@ static ssize_t quota_read_blk(const struct lu_env *env,
        ENTRY;
 
        memset(buf, 0, LUSTRE_DQBLKSIZE);
-
-#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2,7,50,0)
-       /* type is set as -1 when reading old admin quota file */
-       if (type != USRQUOTA && type != GRPQUOTA) {
-               struct lu_buf   lu_buffer;
-               loff_t          pos;
-
-               lu_buffer.lb_buf = buf;
-               lu_buffer.lb_len = LUSTRE_DQBLKSIZE;
-               pos = blk << LUSTRE_DQBLKSIZE_BITS;
-
-               ret = dt_record_read(env, &obj->oo_dt, &lu_buffer, &pos);
-
-               if (ret == 0)
-                       ret = LUSTRE_DQBLKSIZE;
-               else if (ret == -EBADR || ret == -EFAULT)
-                       ret = 0;
-               RETURN(ret);
-       }
-#else
-#warning "remove old quota compatibility code"
-#endif
+       LASSERTF((type == USRQUOTA || type == GRPQUOTA || type == PRJQUOTA),
+                "type=%d\n", type);
 
        ret = sb->s_op->quota_read(sb, type, buf, LUSTRE_DQBLKSIZE,
                                   blk << LUSTRE_DQBLKSIZE_BITS);
@@ -227,7 +207,7 @@ int walk_block_dqentry(const struct lu_env *env, struct osd_object *obj,
        ENTRY;
 
        /* check if the leaf block has been processed before */
-       cfs_list_for_each_entry(leaf, &it->oiq_list, oql_link) {
+       list_for_each_entry(leaf, &it->oiq_list, oql_link) {
                if (leaf->oql_blk == blk)
                        RETURN(1);
        }
@@ -244,7 +224,7 @@ int walk_block_dqentry(const struct lu_env *env, struct osd_object *obj,
        }
        ret = 1;
 
-       if (!le32_to_cpu(dqhead->dqdh_entries))
+       if (!le16_to_cpu(dqhead->dqdh_entries))
                GOTO(out_buf, ret);
 
        ddquot = (struct lustre_disk_dqblk_v2 *)GETENTRIES(buf);
@@ -297,7 +277,7 @@ int walk_tree_dqentry(const struct lu_env *env, struct osd_object *obj,
        }
        ret = 1;
 
-       for (; index <= 0xff && ret > 0; index++) {
+       for (; index <= 0xff; index++) {
                blk = le32_to_cpu(ref[index]);
                if (!blk)       /* No reference */
                        continue;
@@ -307,13 +287,14 @@ int walk_tree_dqentry(const struct lu_env *env, struct osd_object *obj,
                                                depth + 1, 0, it);
                else
                        ret = walk_block_dqentry(env, obj, type, blk, 0, it);
-       }
 
-       if (ret == 0) { /* Entry found */
-               it->oiq_blk[depth + 1] = blk;
-               it->oiq_index[depth] = index;
+               if (ret <= 0)
+                       break;
        }
 
+       it->oiq_blk[depth + 1] = blk;
+       it->oiq_index[depth] = index;
+
 out_buf:
        freedqbuf(buf);
        RETURN(ret);