function_ptr: handle scope of function pointers better
What happened was that you had a lot of functions which did:
fn = SHOULD_WRITE ? write : read;
fn(foo, bar, baz);
"fn" is a very common name. All those function calls got jumbled together
as if they were calling the same function. And also if there were actually
a function called "fn", then it thought it was being called as well.
In the new code we say that it is "outside_func ptr fn" being called
instead of just "fn". This way they don't get mixed up.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>