From mboxrd@z Thu Jan 1 00:00:00 1970 From: "J. Bruce Fields" Subject: Re: [PATCH] vfs: don't treat fl_type as a bitmap Date: Fri, 3 Aug 2012 19:59:31 -0400 Message-ID: <20120803235930.GA25558@fieldses.org> References: <1343936790-15442-1-git-send-email-jlayton@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: viro@ZenIV.linux.org.uk, linux-fsdevel@vger.kernel.org To: Jeff Layton Return-path: Received: from fieldses.org ([174.143.236.118]:54682 "EHLO fieldses.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753985Ab2HCX7e (ORCPT ); Fri, 3 Aug 2012 19:59:34 -0400 Content-Disposition: inline In-Reply-To: <1343936790-15442-1-git-send-email-jlayton@redhat.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Thu, Aug 02, 2012 at 03:46:30PM -0400, Jeff Layton wrote: > The rules for fl_type are rather convoluted. Typically it's treated as > holding specific values, except in the case of LOCK_MAND, in which case > it can be or'ed with LOCK_READ|LOCK_WRITE. > > On some arches F_WRLCK == 2 and F_UNLCK == 3, so and'ing with F_WRLCK will also > catch the F_UNLCK case. It's unlikely in either case here that we'd ever see > F_UNLCK since those shouldn't end up on any lists, but it's still best to be > consistent. Looks good to me--ACK. (Also ran this through my lease tests just to make sure.) --b. > > Signed-off-by: Jeff Layton > --- > fs/locks.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/locks.c b/fs/locks.c > index cdcf219..6c92264 100644 > --- a/fs/locks.c > +++ b/fs/locks.c > @@ -1293,7 +1293,7 @@ EXPORT_SYMBOL(__break_lease); > void lease_get_mtime(struct inode *inode, struct timespec *time) > { > struct file_lock *flock = inode->i_flock; > - if (flock && IS_LEASE(flock) && (flock->fl_type & F_WRLCK)) > + if (flock && IS_LEASE(flock) && (flock->fl_type == F_WRLCK)) > *time = current_fs_time(inode->i_sb); > else > *time = inode->i_mtime; > @@ -2191,8 +2191,8 @@ static void lock_get_status(struct seq_file *f, struct file_lock *fl, > } else { > seq_printf(f, "%s ", > (lease_breaking(fl)) > - ? (fl->fl_type & F_UNLCK) ? "UNLCK" : "READ " > - : (fl->fl_type & F_WRLCK) ? "WRITE" : "READ "); > + ? (fl->fl_type == F_UNLCK) ? "UNLCK" : "READ " > + : (fl->fl_type == F_WRLCK) ? "WRITE" : "READ "); > } > if (inode) { > #ifdef WE_CAN_BREAK_LSLK_NOW > -- > 1.7.11.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html