Merge branch 'stable/bug.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git] / fs / ubifs / io.c
index 239899d..9228950 100644 (file)
@@ -125,7 +125,7 @@ int ubifs_leb_write(struct ubifs_info *c, int lnum, const void *buf, int offs,
        if (!dbg_is_tst_rcvry(c))
                err = ubi_leb_write(c->ubi, lnum, buf, offs, len, dtype);
        else
-               err = dbg_leb_write(c->ubi, lnum, buf, offs, len, dtype);
+               err = dbg_leb_write(c, lnum, buf, offs, len, dtype);
        if (err) {
                ubifs_err("writing %d bytes to LEB %d:%d failed, error %d",
                          len, lnum, offs, err);
@@ -146,7 +146,7 @@ int ubifs_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len,
        if (!dbg_is_tst_rcvry(c))
                err = ubi_leb_change(c->ubi, lnum, buf, len, dtype);
        else
-               err = dbg_leb_change(c->ubi, lnum, buf, len, dtype);
+               err = dbg_leb_change(c, lnum, buf, len, dtype);
        if (err) {
                ubifs_err("changing %d bytes in LEB %d failed, error %d",
                          len, lnum, err);
@@ -166,7 +166,7 @@ int ubifs_leb_unmap(struct ubifs_info *c, int lnum)
        if (!dbg_is_tst_rcvry(c))
                err = ubi_leb_unmap(c->ubi, lnum);
        else
-               err = dbg_leb_unmap(c->ubi, lnum);
+               err = dbg_leb_unmap(c, lnum);
        if (err) {
                ubifs_err("unmap LEB %d failed, error %d", lnum, err);
                ubifs_ro_mode(c, err);
@@ -185,7 +185,7 @@ int ubifs_leb_map(struct ubifs_info *c, int lnum, int dtype)
        if (!dbg_is_tst_rcvry(c))
                err = ubi_leb_map(c->ubi, lnum, dtype);
        else
-               err = dbg_leb_map(c->ubi, lnum, dtype);
+               err = dbg_leb_map(c, lnum, dtype);
        if (err) {
                ubifs_err("mapping LEB %d failed, error %d", lnum, err);
                ubifs_ro_mode(c, err);
@@ -523,14 +523,10 @@ int ubifs_wbuf_sync_nolock(struct ubifs_wbuf *wbuf)
        dirt = sync_len - wbuf->used;
        if (dirt)
                ubifs_pad(c, wbuf->buf + wbuf->used, dirt);
-       err = ubi_leb_write(c->ubi, wbuf->lnum, wbuf->buf, wbuf->offs,
-                           sync_len, wbuf->dtype);
-       if (err) {
-               ubifs_err("cannot write %d bytes to LEB %d:%d",
-                         sync_len, wbuf->lnum, wbuf->offs);
-               dbg_dump_stack();
+       err = ubifs_leb_write(c, wbuf->lnum, wbuf->buf, wbuf->offs, sync_len,
+                             wbuf->dtype);
+       if (err)
                return err;
-       }
 
        spin_lock(&wbuf->lock);
        wbuf->offs += sync_len;
@@ -722,9 +718,9 @@ int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len)
                if (aligned_len == wbuf->avail) {
                        dbg_io("flush jhead %s wbuf to LEB %d:%d",
                               dbg_jhead(wbuf->jhead), wbuf->lnum, wbuf->offs);
-                       err = ubi_leb_write(c->ubi, wbuf->lnum, wbuf->buf,
-                                           wbuf->offs, wbuf->size,
-                                           wbuf->dtype);
+                       err = ubifs_leb_write(c, wbuf->lnum, wbuf->buf,
+                                             wbuf->offs, wbuf->size,
+                                             wbuf->dtype);
                        if (err)
                                goto out;
 
@@ -759,8 +755,8 @@ int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len)
                dbg_io("flush jhead %s wbuf to LEB %d:%d",
                       dbg_jhead(wbuf->jhead), wbuf->lnum, wbuf->offs);
                memcpy(wbuf->buf + wbuf->used, buf, wbuf->avail);
-               err = ubi_leb_write(c->ubi, wbuf->lnum, wbuf->buf, wbuf->offs,
-                                   wbuf->size, wbuf->dtype);
+               err = ubifs_leb_write(c, wbuf->lnum, wbuf->buf, wbuf->offs,
+                                     wbuf->size, wbuf->dtype);
                if (err)
                        goto out;
 
@@ -778,8 +774,8 @@ int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len)
                 */
                dbg_io("write %d bytes to LEB %d:%d",
                       wbuf->size, wbuf->lnum, wbuf->offs);
-               err = ubi_leb_write(c->ubi, wbuf->lnum, buf, wbuf->offs,
-                                   wbuf->size, wbuf->dtype);
+               err = ubifs_leb_write(c, wbuf->lnum, buf, wbuf->offs,
+                                     wbuf->size, wbuf->dtype);
                if (err)
                        goto out;
 
@@ -800,8 +796,8 @@ int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len)
                n <<= c->max_write_shift;
                dbg_io("write %d bytes to LEB %d:%d", n, wbuf->lnum,
                       wbuf->offs);
-               err = ubi_leb_write(c->ubi, wbuf->lnum, buf + written,
-                                   wbuf->offs, n, wbuf->dtype);
+               err = ubifs_leb_write(c, wbuf->lnum, buf + written,
+                                     wbuf->offs, n, wbuf->dtype);
                if (err)
                        goto out;
                wbuf->offs += n;
@@ -883,13 +879,9 @@ int ubifs_write_node(struct ubifs_info *c, void *buf, int len, int lnum,
                return -EROFS;
 
        ubifs_prepare_node(c, buf, len, 1);
-       err = ubi_leb_write(c->ubi, lnum, buf, offs, buf_len, dtype);
-       if (err) {
-               ubifs_err("cannot write %d bytes to LEB %d:%d, error %d",
-                         buf_len, lnum, offs, err);
+       err = ubifs_leb_write(c, lnum, buf, offs, buf_len, dtype);
+       if (err)
                dbg_dump_node(c, buf);
-               dbg_dump_stack();
-       }
 
        return err;
 }
@@ -941,13 +933,9 @@ int ubifs_read_node_wbuf(struct ubifs_wbuf *wbuf, void *buf, int type, int len,
 
        if (rlen > 0) {
                /* Read everything that goes before write-buffer */
-               err = ubi_read(c->ubi, lnum, buf, offs, rlen);
-               if (err && err != -EBADMSG) {
-                       ubifs_err("failed to read node %d from LEB %d:%d, "
-                                 "error %d", type, lnum, offs, err);
-                       dbg_dump_stack();
+               err = ubifs_leb_read(c, lnum, buf, offs, rlen, 0);
+               if (err && err != -EBADMSG)
                        return err;
-               }
        }
 
        if (type != ch->node_type) {
@@ -1002,12 +990,9 @@ int ubifs_read_node(const struct ubifs_info *c, void *buf, int type, int len,
        ubifs_assert(!(offs & 7) && offs < c->leb_size);
        ubifs_assert(type >= 0 && type < UBIFS_NODE_TYPES_CNT);
 
-       err = ubi_read(c->ubi, lnum, buf, offs, len);
-       if (err && err != -EBADMSG) {
-               ubifs_err("cannot read node %d from LEB %d:%d, error %d",
-                         type, lnum, offs, err);
+       err = ubifs_leb_read(c, lnum, buf, offs, len, 0);
+       if (err && err != -EBADMSG)
                return err;
-       }
 
        if (type != ch->node_type) {
                ubifs_err("bad node type (%d but expected %d)",