int i;
int retval;
name = getname(buf);
name = __getname();
if (IS_ERR(name)) {
return PTR_ERR(name);
}
i = strncpy_from_user(name, buf, PATH_MAX);
if (i < 0 || i == PATH_MAX) {
__putname(name);
return -EINVAL;
for (i = strlen(name) - 1; i >= 0 && name[i] == '/'; i--) {
name[i] = '\0';