POSIX only states that ENOENT should be returned if an empty string is specified for the link name. In fact it states for the link target, that it ... "shall be treated only as a character string and shall not be validated as a pathname". Note POSIX was modified in the meantime to clarify possible behaviors, and the existing Linux behaviour of disallowing empty symlink targets with ENOENT was allowed, as well as the behviour enabled by this patch. http://austingroupbugs.net/view.php?id=649 So it doesn't look like this change will be accepted. Signed-off-by: Pádraig Brady --- fs/namei.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index 43a97ee..26dd264 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -3533,12 +3533,13 @@ SYSCALL_DEFINE3(symlinkat, const char __user *, oldname, int, newdfd, const char __user *, newname) { int error; + int empty; struct filename *from; struct dentry *dentry; struct path path; unsigned int lookup_flags = 0; - from = getname(oldname); + from = getname_flags(oldname, LOOKUP_EMPTY, &empty); if (IS_ERR(from)) return PTR_ERR(from); retry: -- 1.7.6.4