lkml.org 
[lkml]   [2010]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] VFS: Sanity check mount flags passed to change_mnt_propagation()
On Thu, Aug 26, 2010 at 07:14:36PM -0600, Matthew Wilcox wrote:
> 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?

I was hoping someone would go find the best bitop for me, thanks. :)
hweight32() is an awkward name but the comment makes it clear. I'm
happy with either.

Thanks for the help,

-VAL


\
 
 \ /
  Last update: 2010-08-27 19:45    [W:0.076 / U:0.548 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site