From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wu Fengguang Subject: Re: [PATCH] vfs: O_* bit numbers uniqueness check fix Date: Fri, 12 Mar 2010 23:14:29 +0800 Message-ID: <20100312151429.GA8519@localhost> References: <201003112211.o2BMBLfm013822@imap1.linux-foundation.org> <1268349064.3768.3.camel@localhost> <20100312134116.GA6502@localhost> <1268406087.3768.4.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "akpm@linux-foundation.org" , "viro@zeniv.linux.org.uk" , "linux-fsdevel@vger.kernel.org" , "davem@davemloft.net" , "hch@infradead.org" , "jamie@shareable.org" , "rdreier@cisco.com" , "schwab@linux-m68k.org" , "sfr@canb.auug.org.au" To: Eric Paris Return-path: Received: from mga09.intel.com ([134.134.136.24]:28147 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934108Ab0CLPOi (ORCPT ); Fri, 12 Mar 2010 10:14:38 -0500 Content-Disposition: inline In-Reply-To: <1268406087.3768.4.camel@localhost> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Mar 12, 2010 at 11:01:27PM +0800, Eric Paris wrote: > On Fri, 2010-03-12 at 21:41 +0800, Wu Fengguang wrote: > > Follow the comment by Eric: > > > > Until the FMODE_ and O_ bits do not overload I think we need to check > > FMODE_EXEC and FMODE_NONOTIFY (if you have that one) inside fcntl_init() > > as well. I guess I'll send a patch to someone ?Al? to add FMODE_EXEC to > > the list.... > > > > CC: Eric Paris > > Signed-off-by: Wu Fengguang > > --- > > fs/fcntl.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > --- linux-mm.orig/fs/fcntl.c 2010-03-12 21:27:12.000000000 +0800 > > +++ linux-mm/fs/fcntl.c 2010-03-12 21:38:51.000000000 +0800 > > @@ -748,7 +748,8 @@ static int __init fcntl_init(void) > > O_TRUNC | O_APPEND | O_NONBLOCK | > > __O_SYNC | O_DSYNC | FASYNC | > > O_DIRECT | O_LARGEFILE | O_DIRECTORY | > > - O_NOFOLLOW | O_NOATIME | O_CLOEXEC > > + O_NOFOLLOW | O_NOATIME | O_CLOEXEC | > > + FMODE_EXEC > > )); > > I think we need to update the hweight as well, otherwise I sure hope > this would panic.... Ah faint.. Here is the fixed one. Thanks, Fengguang --- Subject: vfs: O_* bit numbers uniqueness check fix From: Wu Fengguang Date: Fri Mar 12 21:38:54 CST 2010 Follow the comment by Eric: Until the FMODE_ and O_ bits do not overload I think we need to check FMODE_EXEC and FMODE_NONOTIFY (if you have that one) inside fcntl_init() as well. I guess I'll send a patch to someone ?Al? to add FMODE_EXEC to the list.... CC: Eric Paris Signed-off-by: Wu Fengguang --- fs/fcntl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- linux-mm.orig/fs/fcntl.c 2010-03-12 21:27:12.000000000 +0800 +++ linux-mm/fs/fcntl.c 2010-03-12 23:11:46.000000000 +0800 @@ -742,13 +742,14 @@ EXPORT_SYMBOL(kill_fasync); static int __init fcntl_init(void) { /* please add new bits here to ensure allocation uniqueness */ - BUILD_BUG_ON(17 != HWEIGHT32( + BUILD_BUG_ON(18 != HWEIGHT32( O_RDONLY | O_WRONLY | O_RDWR | O_CREAT | O_EXCL | O_NOCTTY | O_TRUNC | O_APPEND | O_NONBLOCK | __O_SYNC | O_DSYNC | FASYNC | O_DIRECT | O_LARGEFILE | O_DIRECTORY | - O_NOFOLLOW | O_NOATIME | O_CLOEXEC + O_NOFOLLOW | O_NOATIME | O_CLOEXEC | + FMODE_EXEC )); fasync_cache = kmem_cache_create("fasync_cache",