UBIFS: simplify lprops debugging check
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Fri, 6 May 2011 17:58:08 +0000 (20:58 +0300)
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Mon, 16 May 2011 07:31:39 +0000 (10:31 +0300)
Now we return all errors from 'scan_check_cb()' directly, so we do not need
'struct scan_check_data' any more, and this patch removes it.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
fs/ubifs/lprops.c

index ac4521a..77c541b 100644 (file)
@@ -1006,22 +1006,12 @@ out:
        }
 }
 
-/**
- * struct scan_check_data - data provided to scan callback function.
- * @lst: LEB properties statistics
- * @err: error code
- */
-struct scan_check_data {
-       struct ubifs_lp_stats lst;
-       int err;
-};
-
 /**
  * scan_check_cb - scan callback.
  * @c: the UBIFS file-system description object
  * @lp: LEB properties to scan
  * @in_tree: whether the LEB properties are in main memory
- * @data: information passed to and from the caller of the scan
+ * @lst: lprops statistics to update
  *
  * This function returns a code that indicates whether the scan should continue
  * (%LPT_SCAN_CONTINUE), whether the LEB properties should be added to the tree
@@ -1030,11 +1020,10 @@ struct scan_check_data {
  */
 static int scan_check_cb(struct ubifs_info *c,
                         const struct ubifs_lprops *lp, int in_tree,
-                        struct scan_check_data *data)
+                        struct ubifs_lp_stats *lst)
 {
        struct ubifs_scan_leb *sleb;
        struct ubifs_scan_node *snod;
-       struct ubifs_lp_stats *lst = &data->lst;
        int cat, lnum = lp->lnum, is_idx = 0, used = 0, free, dirty, ret;
        void *buf = NULL;
 
@@ -1267,8 +1256,7 @@ out:
 int dbg_check_lprops(struct ubifs_info *c)
 {
        int i, err;
-       struct scan_check_data data;
-       struct ubifs_lp_stats *lst = &data.lst;
+       struct ubifs_lp_stats lst;
 
        if (!(ubifs_chk_flags & UBIFS_CHK_LPROPS))
                return 0;
@@ -1283,29 +1271,23 @@ int dbg_check_lprops(struct ubifs_info *c)
                        return err;
        }
 
-       memset(lst, 0, sizeof(struct ubifs_lp_stats));
-
-       data.err = 0;
+       memset(&lst, 0, sizeof(struct ubifs_lp_stats));
        err = ubifs_lpt_scan_nolock(c, c->main_first, c->leb_cnt - 1,
                                    (ubifs_lpt_scan_callback)scan_check_cb,
-                                   &data);
+                                   &lst);
        if (err && err != -ENOSPC)
                goto out;
-       if (data.err) {
-               err = data.err;
-               goto out;
-       }
 
-       if (lst->empty_lebs != c->lst.empty_lebs ||
-           lst->idx_lebs != c->lst.idx_lebs ||
-           lst->total_free != c->lst.total_free ||
-           lst->total_dirty != c->lst.total_dirty ||
-           lst->total_used != c->lst.total_used) {
+       if (lst.empty_lebs != c->lst.empty_lebs ||
+           lst.idx_lebs != c->lst.idx_lebs ||
+           lst.total_free != c->lst.total_free ||
+           lst.total_dirty != c->lst.total_dirty ||
+           lst.total_used != c->lst.total_used) {
                ubifs_err("bad overall accounting");
                ubifs_err("calculated: empty_lebs %d, idx_lebs %d, "
                          "total_free %lld, total_dirty %lld, total_used %lld",
-                         lst->empty_lebs, lst->idx_lebs, lst->total_free,
-                         lst->total_dirty, lst->total_used);
+                         lst.empty_lebs, lst.idx_lebs, lst.total_free,
+                         lst.total_dirty, lst.total_used);
                ubifs_err("read from lprops: empty_lebs %d, idx_lebs %d, "
                          "total_free %lld, total_dirty %lld, total_used %lld",
                          c->lst.empty_lebs, c->lst.idx_lebs, c->lst.total_free,
@@ -1314,11 +1296,11 @@ int dbg_check_lprops(struct ubifs_info *c)
                goto out;
        }
 
-       if (lst->total_dead != c->lst.total_dead ||
-           lst->total_dark != c->lst.total_dark) {
+       if (lst.total_dead != c->lst.total_dead ||
+           lst.total_dark != c->lst.total_dark) {
                ubifs_err("bad dead/dark space accounting");
                ubifs_err("calculated: total_dead %lld, total_dark %lld",
-                         lst->total_dead, lst->total_dark);
+                         lst.total_dead, lst.total_dark);
                ubifs_err("read from lprops: total_dead %lld, total_dark %lld",
                          c->lst.total_dead, c->lst.total_dark);
                err = -EINVAL;