Re: [RFC PATCH 1/1] cleanup: use bool as return type for rwsem_is_locked

Dave Chinner
2014-06-07T23:44:16Z

On Fri, Jun 06, 2014 at 07:39:30PM -0700, Joe Perches wrote:
> On Fri, 2014-06-06 at 21:41 -0400, Pranith Kumar wrote:
> > On 06/06/2014 08:59 PM, Pranith Kumar wrote:
> > > On 06/06/2014 08:18 PM, Dave Chinner wrote:
> > >> If you are going to change the return type to bool, then you should
> > >> also remove the manual "!!" conversions to a boolean return and let
> > >> the compiler do it in the most optimal way.
> > > Agreed, please find patch below:
> > Simplify the "!!" condition. This is much simpler. :)
> []
> > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
>
> > @@ -285,25 +285,25 @@ xfs_ilock_demote(
> > }
> >
> > #if defined(DEBUG) || defined(XFS_WARN)
> > -int
> > +bool
> > xfs_isilocked(
> > xfs_inode_t *ip,
> > uint lock_flags)
> > {
> > if (lock_flags & (XFS_ILOCK_EXCL|XFS_ILOCK_SHARED)) {
> > if (!(lock_flags & XFS_ILOCK_SHARED))
> > - return !!ip->i_lock.mr_writer;
> > + return (ip->i_lock.mr_writer != 0);
>
> simpler still would be just removing the !! completely.
> I presume in no case would it make an actual difference
> in emitted code.
>
> ie:
> return ip->i_lock.mr_writer;

Yup, that's exactly what I meant. Casting to a bool type does all
the work of squashing all non-zero values to 1...

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com