struct filename: separate public and private parts

ALL pointers to struct filename should be either
	* ERR_PTR(...)
	* NULL
	* or address of ->pubic of some struct __filename instance.

All private members moved out of struct filename to containing
struct __filename (yes, including refcount).  Only two files
have any business accessing those - fs/filename.c itself and
kernel/auditsc.c; the main reason for this series is to untangle
the incestous relationship between those.

Let's start with making sure nobody else plays with that stuff;
this commit is just a brute-force way to do that.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
3 files changed