On 6/27/18 9:37 PM, Linus Torvalds wrote:
On Wed, Jun 27, 2018 at 7:17 PM Eric Sandeen
> What broke is that mmap(MAP_SHARED|MAP_PRIVATE) now succeeds without error,
> whereas before it rightly returned -EINVAL.
You're still confusing *behavior* with breakage.
Yes. New *behavior* is that MAP_SHARED|MAP_PRIVATE is now a valid
thing. It means "MAP_SHARED_VALIDATE".
Behavior changed. That's normal. Every single time we add a system
call, behavior changes: a system call that used to return -ENOSYS now
returns something else.
That's not breakage, that's just intentional new behavior.
*shrug* semantics aside, the new behavior is out there in a public
API, so I guess there's nothing to do at this point other than
to document the change more clearly. It's true that my patch could
possibly break existing users.
The man page is clearly wrong at this point, both in terms of the
error code section, and the claim that MAP_SHARED and MAP_PRIVATE
behave as described in POSIX (because POSIX states that these
two flags may not be specified together.)