Message ID | 20200217125957.263434-29-hch@lst.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [01/31] xfs: reject invalid flags combinations in XFS_IOC_ATTRLIST_BY_HANDLE | expand |
On Mon, Feb 17, 2020 at 01:59:54PM +0100, Christoph Hellwig wrote: > Remove superflous braces, elses after return statements and use a goto > label to merge common error handling. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Chandan Rajendra <chandanrlinux@gmail.com> > Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> > --- > fs/xfs/libxfs/xfs_attr.c | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c > index 3b1db2afb104..9c629c7c912d 100644 > --- a/fs/xfs/libxfs/xfs_attr.c > +++ b/fs/xfs/libxfs/xfs_attr.c > @@ -423,9 +423,9 @@ xfs_attr_shortform_addname(xfs_da_args_t *args) > trace_xfs_attr_sf_addname(args); > > retval = xfs_attr_shortform_lookup(args); > - if ((args->flags & ATTR_REPLACE) && (retval == -ENOATTR)) { > + if ((args->flags & ATTR_REPLACE) && retval == -ENOATTR) > return retval; > - } else if (retval == -EEXIST) { > + if (retval == -EEXIST) { > if (args->flags & ATTR_CREATE) > return retval; If we are cleaning up this code, I'd prefer that the retval vs flags order was made consistent. i.e. if (retval == -ENOATTR && (args->flags & ATTR_REPLACE)) return retval; if (retval == -EEXIST) { if (args->flags & ATTR_CREATE) return retval; ..... Because then it is clear we are stacking error conditions that are only relevant to specific operations. Cheers, Dave.
On Tue, Feb 18, 2020 at 01:06:18PM +1100, Dave Chinner wrote: > If we are cleaning up this code, I'd prefer that the retval vs flags > order was made consistent. i.e. > > if (retval == -ENOATTR && (args->flags & ATTR_REPLACE)) > return retval; > if (retval == -EEXIST) { > if (args->flags & ATTR_CREATE) > return retval; > ..... > > Because then it is clear we are stacking error conditions that are > only relevant to specific operations. Ok.
diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c index 3b1db2afb104..9c629c7c912d 100644 --- a/fs/xfs/libxfs/xfs_attr.c +++ b/fs/xfs/libxfs/xfs_attr.c @@ -423,9 +423,9 @@ xfs_attr_shortform_addname(xfs_da_args_t *args) trace_xfs_attr_sf_addname(args); retval = xfs_attr_shortform_lookup(args); - if ((args->flags & ATTR_REPLACE) && (retval == -ENOATTR)) { + if ((args->flags & ATTR_REPLACE) && retval == -ENOATTR) return retval; - } else if (retval == -EEXIST) { + if (retval == -EEXIST) { if (args->flags & ATTR_CREATE) return retval; retval = xfs_attr_shortform_remove(args); @@ -489,14 +489,11 @@ xfs_attr_leaf_addname( * the given flags produce an error or call for an atomic rename. */ retval = xfs_attr3_leaf_lookup_int(bp, args); - if ((args->flags & ATTR_REPLACE) && (retval == -ENOATTR)) { - xfs_trans_brelse(args->trans, bp); - return retval; - } else if (retval == -EEXIST) { - if (args->flags & ATTR_CREATE) { /* pure create op */ - xfs_trans_brelse(args->trans, bp); - return retval; - } + if ((args->flags & ATTR_REPLACE) && retval == -ENOATTR) + goto out_brelse; + if (retval == -EEXIST) { + if (args->flags & ATTR_CREATE) /* pure create op */ + goto out_brelse; trace_xfs_attr_leaf_replace(args); @@ -637,6 +634,9 @@ xfs_attr_leaf_addname( error = xfs_attr3_leaf_clearflag(args); } return error; +out_brelse: + xfs_trans_brelse(args->trans, bp); + return retval; } /* @@ -763,9 +763,9 @@ xfs_attr_node_addname( goto out; blk = &state->path.blk[ state->path.active-1 ]; ASSERT(blk->magic == XFS_ATTR_LEAF_MAGIC); - if ((args->flags & ATTR_REPLACE) && (retval == -ENOATTR)) { + if ((args->flags & ATTR_REPLACE) && retval == -ENOATTR) goto out; - } else if (retval == -EEXIST) { + if (retval == -EEXIST) { if (args->flags & ATTR_CREATE) goto out;