static int ovl_mount_dir(const char *name, struct path *path) { int err; char *tmp = kstrdup(name, GFP_KERNEL); if (!tmp) return -ENOMEM; ovl_unescape(tmp); err = kern_path(tmp, LOOKUP_FOLLOW, path); if (err) { pr_err("overlayfs: failed to resolve '%s': %i\n", tmp, err); err = -EINVAL; } kfree(tmp); return err; }
static int ovl_mount_dir(const char *name, struct path *path) { int err = -ENOMEM; char *tmp = kstrdup(name, GFP_KERNEL); if (tmp) { ovl_unescape(tmp); err = ovl_mount_dir_noesc(tmp, path); if (!err) if (ovl_dentry_remote(path->dentry)) { pr_err("overlayfs: filesystem on '%s' not supported as upperdir\n", tmp); path_put_init(path); err = -EINVAL; } kfree(tmp); } return err; }