• Sasha Levin's avatar
    net: Revert "fib_trie: use seq_file_net rather than seq->private" · f830b022
    Sasha Levin authored
    This reverts commit 30f38d2f.
    
    fib_triestat is surrounded by a big lie: while it claims that it's a
    seq_file (fib_triestat_seq_open, fib_triestat_seq_show), it isn't:
    
    	static const struct file_operations fib_triestat_fops = {
    	        .owner  = THIS_MODULE,
    	        .open   = fib_triestat_seq_open,
    	        .read   = seq_read,
    	        .llseek = seq_lseek,
    	        .release = single_release_net,
    	};
    
    Yes, fib_triestat is just a regular file.
    
    A small detail (assuming CONFIG_NET_NS=y) is that while for seq_files
    you could do seq_file_net() to get the net ptr, doing so for a regular
    file would be wrong and would dereference an invalid pointer.
    
    The fib_triestat lie claimed a victim, and trying to show the file would
    be bad for the kernel. This patch just reverts the issue and fixes
    fib_triestat, which still needs a rewrite to either be a seq_file or
    stop claiming it is.
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f830b022
fib_trie.c 60.8 KB