Merge tag 'upstream-3.13-rc1' of git://git.infradead.org/linux-ubifs
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Nov 2013 06:28:45 +0000 (15:28 +0900)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Nov 2013 06:28:45 +0000 (15:28 +0900)
Pull ubifs changes from Artem Bityutskiy:
 "Mostly fixes for the power cut emulation UBIFS mode, and only one
  functional change which fixes a return error code"

* tag 'upstream-3.13-rc1' of git://git.infradead.org/linux-ubifs:
  UBIFS: correct data corruption range
  UBIFS: fix return code
  UBIFS: remove unnecessary code in ubifs_garbage_collect

fs/ubifs/debug.c
fs/ubifs/gc.c
fs/ubifs/super.c

index 6e025e02ffde80c924bec1b90b4fe62b7d163121..cc1febd8fadf730ddd2e2dfb78315798508aa408 100644 (file)
@@ -2563,9 +2563,9 @@ static int corrupt_data(const struct ubifs_info *c, const void *buf,
        unsigned int from, to, ffs = chance(1, 2);
        unsigned char *p = (void *)buf;
 
-       from = prandom_u32() % (len + 1);
-       /* Corruption may only span one max. write unit */
-       to = min(len, ALIGN(from, c->max_write_size));
+       from = prandom_u32() % len;
+       /* Corruption span max to end of write unit */
+       to = min(len, ALIGN(from + 1, c->max_write_size));
 
        ubifs_warn("filled bytes %u-%u with %s", from, to - 1,
                   ffs ? "0xFFs" : "random data");
index 76ca53cd3eeec52c53ab064221a6519d8c70c80c..9718da86ad01a804db1e3c7e2a2ca6923f6299a3 100644 (file)
@@ -668,8 +668,7 @@ int ubifs_garbage_collect(struct ubifs_info *c, int anyway)
        ubifs_assert(!wbuf->used);
 
        for (i = 0; ; i++) {
-               int space_before = c->leb_size - wbuf->offs - wbuf->used;
-               int space_after;
+               int space_before, space_after;
 
                cond_resched();
 
index 3e4aa7281e04b38ecc8063e64d22ccef34c6291f..f69daa514a57a0827a55c47f4680dcb5e69ec746 100644 (file)
@@ -1630,8 +1630,10 @@ static int ubifs_remount_rw(struct ubifs_info *c)
        }
 
        c->write_reserve_buf = kmalloc(COMPRESSED_DATA_NODE_BUF_SZ, GFP_KERNEL);
-       if (!c->write_reserve_buf)
+       if (!c->write_reserve_buf) {
+               err = -ENOMEM;
                goto out;
+       }
 
        err = ubifs_lpt_init(c, 0, 1);
        if (err)
@@ -2064,8 +2066,10 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent)
        }
 
        sb->s_root = d_make_root(root);
-       if (!sb->s_root)
+       if (!sb->s_root) {
+               err = -ENOMEM;
                goto out_umount;
+       }
 
        mutex_unlock(&c->umount_mutex);
        return 0;