int res;
unsigned int lookup_flags = LOOKUP_FOLLOW;
const struct cred *old_cred = NULL;
- struct filename *name;
if (mode & ~S_IRWXO) /* where's F_OK, X_OK, W_OK, R_OK? */
return -EINVAL;
return -ENOMEM;
}
- name = getname_uflags(filename, flags);
+ CLASS(filename_uflags, name)(filename, flags);
retry:
res = filename_lookup(dfd, name, lookup_flags, &path, NULL);
if (res)
goto retry;
}
out:
- putname(name);
if (old_cred)
put_cred(revert_creds(old_cred));
unsigned int flags)
{
struct path path;
- struct filename *name;
int error;
unsigned int lookup_flags;
return -EINVAL;
lookup_flags = (flags & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW;
- name = getname_uflags(filename, flags);
+ CLASS(filename_uflags, name)(filename, flags);
retry:
error = filename_lookup(dfd, name, lookup_flags, &path, NULL);
if (!error) {
goto retry;
}
}
- putname(name);
return error;
}