From a mailing list I belong to, a back-and-forth is going on that I am not involved in. The following sums it up nicely:
It's really the implied equality that's the problem. For example:
if (flags & DLADM_OPT_PERSIST) {
would be better written as:
if ((flags & DLADM_OPT_PERSIST) == 0) {
Seriously? What do (or would) "original C" programmers think of this? To me, anything non-zero is "true" so the first is perfectly acceptable.
The original assertion in the discussion was that the following is not "right" because of the mixing of bitwise and boolean.
if ((flags & DLADM_OPT_PERSIST) && (link_flags & DLMGMT_PERSIST)) {