]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - fs/ubifs/tnc.c
Merge branch 'master' of git://www.denx.de/git/u-boot-usb
[people/ms/u-boot.git] / fs / ubifs / tnc.c
index eda50705574d9c063bb14d77d427e1ff33631973..f6316a32e3b938b37203be92d7f6dcea21811e79 100644 (file)
@@ -19,7 +19,6 @@
  * the mutex locked.
  */
 
-#define __UBOOT__
 #ifndef __UBOOT__
 #include <linux/crc32.h>
 #include <linux/slab.h>
@@ -94,7 +93,7 @@ static int insert_old_idx(struct ubifs_info *c, int lnum, int offs)
                else if (offs > o->offs)
                        p = &(*p)->rb_right;
                else {
-                       ubifs_err("old idx added twice!");
+                       ubifs_err(c, "old idx added twice!");
                        kfree(old_idx);
                        return 0;
                }
@@ -443,7 +442,7 @@ static int try_read_node(const struct ubifs_info *c, void *buf, int type,
 
        err = ubifs_leb_read(c, lnum, buf, offs, len, 1);
        if (err) {
-               ubifs_err("cannot read node type %d from LEB %d:%d, error %d",
+               ubifs_err(c, "cannot read node type %d from LEB %d:%d, error %d",
                          type, lnum, offs, err);
                return err;
        }
@@ -1684,27 +1683,27 @@ static int validate_data_node(struct ubifs_info *c, void *buf,
        int err, len;
 
        if (ch->node_type != UBIFS_DATA_NODE) {
-               ubifs_err("bad node type (%d but expected %d)",
+               ubifs_err(c, "bad node type (%d but expected %d)",
                          ch->node_type, UBIFS_DATA_NODE);
                goto out_err;
        }
 
        err = ubifs_check_node(c, buf, zbr->lnum, zbr->offs, 0, 0);
        if (err) {
-               ubifs_err("expected node type %d", UBIFS_DATA_NODE);
+               ubifs_err(c, "expected node type %d", UBIFS_DATA_NODE);
                goto out;
        }
 
        len = le32_to_cpu(ch->len);
        if (len != zbr->len) {
-               ubifs_err("bad node length %d, expected %d", len, zbr->len);
+               ubifs_err(c, "bad node length %d, expected %d", len, zbr->len);
                goto out_err;
        }
 
        /* Make sure the key of the read node is correct */
        key_read(c, buf + UBIFS_KEY_OFFSET, &key1);
        if (!keys_eq(c, &zbr->key, &key1)) {
-               ubifs_err("bad key in node at LEB %d:%d",
+               ubifs_err(c, "bad key in node at LEB %d:%d",
                          zbr->lnum, zbr->offs);
                dbg_tnck(&zbr->key, "looked for key ");
                dbg_tnck(&key1, "found node's key ");
@@ -1716,7 +1715,7 @@ static int validate_data_node(struct ubifs_info *c, void *buf,
 out_err:
        err = -EINVAL;
 out:
-       ubifs_err("bad node at LEB %d:%d", zbr->lnum, zbr->offs);
+       ubifs_err(c, "bad node at LEB %d:%d", zbr->lnum, zbr->offs);
        ubifs_dump_node(c, buf);
        dump_stack();
        return err;
@@ -1741,7 +1740,7 @@ int ubifs_tnc_bulk_read(struct ubifs_info *c, struct bu_info *bu)
        len = bu->zbranch[bu->cnt - 1].offs;
        len += bu->zbranch[bu->cnt - 1].len - offs;
        if (len > bu->buf_len) {
-               ubifs_err("buffer too small %d vs %d", bu->buf_len, len);
+               ubifs_err(c, "buffer too small %d vs %d", bu->buf_len, len);
                return -EINVAL;
        }
 
@@ -1757,7 +1756,7 @@ int ubifs_tnc_bulk_read(struct ubifs_info *c, struct bu_info *bu)
                return -EAGAIN;
 
        if (err && err != -EBADMSG) {
-               ubifs_err("failed to read from LEB %d:%d, error %d",
+               ubifs_err(c, "failed to read from LEB %d:%d, error %d",
                          lnum, offs, err);
                dump_stack();
                dbg_tnck(&bu->key, "key ");
@@ -2828,7 +2827,6 @@ out_unlock:
        return ERR_PTR(err);
 }
 
-#ifndef __UBOOT__
 /**
  * tnc_destroy_cnext - destroy left-over obsolete znodes from a failed commit.
  * @c: UBIFS file-system description object
@@ -2860,17 +2858,17 @@ void ubifs_tnc_close(struct ubifs_info *c)
 {
        tnc_destroy_cnext(c);
        if (c->zroot.znode) {
-               long n;
+               long n, freed;
 
-               ubifs_destroy_tnc_subtree(c->zroot.znode);
                n = atomic_long_read(&c->clean_zn_cnt);
+               freed = ubifs_destroy_tnc_subtree(c->zroot.znode);
+               ubifs_assert(freed == n);
                atomic_long_sub(n, &ubifs_clean_zn_cnt);
        }
        kfree(c->gap_lebs);
        kfree(c->ilebs);
        destroy_old_idx(c);
 }
-#endif
 
 /**
  * left_znode - get the znode to the left.
@@ -3295,7 +3293,6 @@ int dbg_check_inode_size(struct ubifs_info *c, const struct inode *inode,
                goto out_unlock;
 
        if (err) {
-               err = -EINVAL;
                key = &from_key;
                goto out_dump;
        }
@@ -3315,7 +3312,7 @@ int dbg_check_inode_size(struct ubifs_info *c, const struct inode *inode,
 
 out_dump:
        block = key_block(c, key);
-       ubifs_err("inode %lu has size %lld, but there are data at offset %lld",
+       ubifs_err(c, "inode %lu has size %lld, but there are data at offset %lld",
                  (unsigned long)inode->i_ino, size,
                  ((loff_t)block) << UBIFS_BLOCK_SHIFT);
        mutex_unlock(&c->tnc_mutex);