On Thu, Aug 26, 2010 at 04:03:18PM -0400, Valerie Aurora wrote: > + /* Fail if any non-propagation flags are set */ > + if (type & ~(MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) > + return 0; > + /* Only one propagation flag should be set */ > + if (((type & (MS_SHARED)) && (type & ~MS_SHARED)) || > + ((type & (MS_PRIVATE)) && (type & ~MS_PRIVATE)) || > + ((type & (MS_SLAVE)) && (type & ~MS_SLAVE)) || > + ((type & (MS_UNBINDABLE)) && (type & ~MS_UNBINDABLE))) > + return 0; Hrm. I think we can do this a bit more pithily. /* Only one propagation flag should be set, and no others */ if (hweight32(type) != 1 && (type & ~(MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) return 0; Too clever? -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html