trace_xfs_attr_sf_addname(args);
 
        retval = xfs_attr_shortform_lookup(args);
-       if ((args->flags & ATTR_REPLACE) && (retval == -ENOATTR)) {
+       if (retval == -ENOATTR && (args->flags & ATTR_REPLACE))
                return retval;
-       } else if (retval == -EEXIST) {
+       if (retval == -EEXIST) {
                if (args->flags & ATTR_CREATE)
                        return retval;
                retval = xfs_attr_shortform_remove(args);
         * 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 (retval == -ENOATTR && (args->flags & ATTR_REPLACE))
+               goto out_brelse;
+       if (retval == -EEXIST) {
+               if (args->flags & ATTR_CREATE)  /* pure create op */
+                       goto out_brelse;
 
                trace_xfs_attr_leaf_replace(args);
 
                error = xfs_attr3_leaf_clearflag(args);
        }
        return error;
+out_brelse:
+       xfs_trans_brelse(args->trans, bp);
+       return retval;
 }
 
 /*
                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 (retval == -ENOATTR && (args->flags & ATTR_REPLACE))
                goto out;
-       } else if (retval == -EEXIST) {
+       if (retval == -EEXIST) {
                if (args->flags & ATTR_CREATE)
                        goto out;