[WTF?] aafs_create_symlink() weirdness

From: Al Viro
Date: Mon Sep 23 2019 - 22:03:53 EST



static struct dentry *aafs_create_symlink(const char *name,
struct dentry *parent,
const char *target,
void *private,
const struct inode_operations *iops)
{
struct dentry *dent;
char *link = NULL;

if (target) {
if (!link)
return ERR_PTR(-ENOMEM);
}

Er... That's an odd way to spell
if (target)
return ERR_PTR(-ENOMEM);
(and an odd error value to use). Especially since all callers are passing
NULL as target.

Why is that code even there, why does that argument still exist and
how many people have actually read that function?