Hi Pavel,
Some sockets don't care about msghdr::ubuf_info and would execute the request by copying data. Such fallback behaviour was always a pain in my experience, so we'd rather want to fail such requests and have a more robust api in the future. Mark struct socket that support it with a new SOCK_SUPPORT_ZC flag. I'm not entirely sure it's the best place for the flag but at least we don't have to do a bunch of extra dereferences in the hot path.
I'd give the flag another name that indicates msg_ubuf and have a 2nd flag that can indicate support for SO_ZEROCOPY in sk_setsockopt() The SO_ZEROCOPY version is also provided by AF_RDS. metze