if (!ufs)
goto out;
+ ufs->creator_cred = cred = prepare_creds();
+ if (!cred)
+ goto out_err;
+
ufs->config.redirect_dir = ovl_redirect_dir_def;
ufs->config.index = ovl_index_def;
err = ovl_parse_opt((char *) data, &ufs->config);
if (err)
goto out_err;
- err = ovl_get_workpath(ufs, &upperpath, &workpath);
+ err = ovl_get_upper(ufs, &upperpath);
if (err)
goto out_err;
- sb->s_stack_depth = upperpath.mnt->mnt_sb->s_stack_depth;
- }
- err = ovl_get_lowerstack(sb, ufs, &stack, &numlower);
- if (err)
- goto out_err;
-
- if (ufs->config.upperdir) {
- err = ovl_get_upper(ufs, &upperpath);
+ err = ovl_get_workpath(ufs, &upperpath, &workpath);
if (err)
goto out_err;
- sb->s_time_gran = ufs->upper_mnt->mnt_sb->s_time_gran;
-
err = ovl_get_workdir(sb, ufs, &workpath);
if (err)
goto out_err;
+
+ sb->s_stack_depth = ufs->upper_mnt->mnt_sb->s_stack_depth;
+ sb->s_time_gran = ufs->upper_mnt->mnt_sb->s_time_gran;
+
}
+ err = ovl_get_lowerstack(sb, ufs, &stack, &numlower);
+ if (err)
+ goto out_err;
err = ovl_get_lower_layers(ufs, stack, numlower);
if (err)
if (!ufs->indexdir)
ufs->config.index = false;
- err = -ENOMEM;
- ufs->creator_cred = cred = prepare_creds();
- if (!cred)
- goto out_err;
-
/* Never override disk quota limits or use reserved space */
cap_lower(cred->cap_effective, CAP_SYS_RESOURCE);
sb->s_fs_info = ufs;
sb->s_flags |= MS_POSIXACL | MS_NOREMOTELOCK;
+ err = -ENOMEM;
root_dentry = d_make_root(ovl_new_inode(sb, S_IFDIR, 0));
if (!root_dentry)
goto out_err;