Merge remote-tracking branches 'asoc/fix/mtk', 'asoc/fix/psc', 'asoc/fix/pxa', 'asoc...
[firefly-linux-kernel-4.4.55.git] / drivers / md / dm-log-writes.c
index 316cc3fb741f972a075fb56888585ef4ada72468..b2912dbac8bce7356f06eebc8063317c6bc411b0 100644 (file)
@@ -417,6 +417,7 @@ static int log_writes_ctr(struct dm_target *ti, unsigned int argc, char **argv)
        struct log_writes_c *lc;
        struct dm_arg_set as;
        const char *devname, *logdevname;
+       int ret;
 
        as.argc = argc;
        as.argv = argv;
@@ -440,18 +441,22 @@ static int log_writes_ctr(struct dm_target *ti, unsigned int argc, char **argv)
        atomic_set(&lc->pending_blocks, 0);
 
        devname = dm_shift_arg(&as);
-       if (dm_get_device(ti, devname, dm_table_get_mode(ti->table), &lc->dev)) {
+       ret = dm_get_device(ti, devname, dm_table_get_mode(ti->table), &lc->dev);
+       if (ret) {
                ti->error = "Device lookup failed";
                goto bad;
        }
 
        logdevname = dm_shift_arg(&as);
-       if (dm_get_device(ti, logdevname, dm_table_get_mode(ti->table), &lc->logdev)) {
+       ret = dm_get_device(ti, logdevname, dm_table_get_mode(ti->table),
+                           &lc->logdev);
+       if (ret) {
                ti->error = "Log device lookup failed";
                dm_put_device(ti, lc->dev);
                goto bad;
        }
 
+       ret = -EINVAL;
        lc->log_kthread = kthread_run(log_writes_kthread, lc, "log-write");
        if (!lc->log_kthread) {
                ti->error = "Couldn't alloc kthread";
@@ -476,7 +481,7 @@ static int log_writes_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 
 bad:
        kfree(lc);
-       return -EINVAL;
+       return ret;
 }
 
 static int log_mark(struct log_writes_c *lc, char *data)