int err;
unsigned int i;
- err = -ENOMEM;
ofs->fs = kcalloc(numlower + 1, sizeof(struct ovl_sb), GFP_KERNEL);
if (ofs->fs == NULL)
- goto out;
+ return -ENOMEM;
/* idx/fsid 0 are reserved for upper fs even with lower only overlay */
ofs->numfs++;
err = get_anon_bdev(&ofs->fs[0].pseudo_dev);
if (err) {
pr_err("failed to get anonymous bdev for upper fs\n");
- goto out;
+ return err;
}
if (ovl_upper_mnt(ofs)) {
struct inode *trap;
int fsid;
- err = fsid = ovl_get_fsid(ofs, &stack[i]);
- if (err < 0)
- goto out;
+ fsid = ovl_get_fsid(ofs, &stack[i]);
+ if (fsid < 0)
+ return fsid;
/*
* Check if lower root conflicts with this overlay layers before
*/
err = ovl_setup_trap(sb, stack[i].dentry, &trap, "lowerdir");
if (err)
- goto out;
+ return err;
if (ovl_is_inuse(stack[i].dentry)) {
err = ovl_report_in_use(ofs, "lowerdir");
if (err) {
iput(trap);
- goto out;
+ return err;
}
}
if (IS_ERR(mnt)) {
pr_err("failed to clone lowerpath\n");
iput(trap);
- goto out;
+ return err;
}
/*
ofs->xino_mode);
}
- err = 0;
-out:
- return err;
+ return 0;
}
static struct ovl_entry *ovl_get_lowerstack(struct super_block *sb,