/* FIX: POSIX 1003.1g is very ambiguous here. It states that asynchronous errors should be reported by getsockopt. We assume this means if you specify SO_ERROR (otherwise whats the point of it).  */
int sock_common_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen)
/* FIX: POSIX 1003.1g is very ambiguous here. It states that asynchronous errors should be reported by getsockopt. We assume this means if you specify SO_ERROR (otherwise whats the point of it).  */
int sock_common_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen)
{
	struct sock *sk = sock->sk;
	return sk->sk_prot->getsockopt(sk, level, optname, optval, optlen);
}