Message ID | 7083c299-4803-68c8-ae57-c0e74f5d9229@users.sourceforge.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 8/21/17 8:41 AM, SF Markus Elfring wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Mon, 21 Aug 2017 13:34:29 +0200 > > Add a jump target so that a bit of exception handling can be better reused > in this function. > > This issue was detected by using the Coccinelle software. Adding a jump label in the middle of a conditional for "common" error handling makes the code more difficult to understand. -Jeff > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > --- > fs/btrfs/send.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c > index 59fb1ed6ca20..a96edc91a101 100644 > --- a/fs/btrfs/send.c > +++ b/fs/btrfs/send.c > @@ -3697,12 +3697,12 @@ static int update_ref_path(struct send_ctx *sctx, struct recorded_ref *ref) > return -ENOMEM; > > ret = get_cur_path(sctx, ref->dir, ref->dir_gen, new_path); > - if (ret < 0) { > - fs_path_free(new_path); > - return ret; > - } > + if (ret < 0) > + goto free_path; > + > ret = fs_path_add(new_path, ref->name, ref->name_len); > if (ret < 0) { > +free_path: > fs_path_free(new_path); > return ret; > } >
On Mon, Aug 21, 2017 at 09:08:04AM -0400, Jeff Mahoney wrote: > On 8/21/17 8:41 AM, SF Markus Elfring wrote: > > From: Markus Elfring <elfring@users.sourceforge.net> > > Date: Mon, 21 Aug 2017 13:34:29 +0200 > > > > Add a jump target so that a bit of exception handling can be better reused > > in this function. > > > > This issue was detected by using the Coccinelle software. > > Adding a jump label in the middle of a conditional for "common" error > handling makes the code more difficult to understand. > I have said that a bunch of times. It's like bashing my face into the keyboard for all the good it does. On the other hand, some people accept these oddly placed labels... No one else writes code like this so far as I know. regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index 59fb1ed6ca20..a96edc91a101 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -3697,12 +3697,12 @@ static int update_ref_path(struct send_ctx *sctx, struct recorded_ref *ref) return -ENOMEM; ret = get_cur_path(sctx, ref->dir, ref->dir_gen, new_path); - if (ret < 0) { - fs_path_free(new_path); - return ret; - } + if (ret < 0) + goto free_path; + ret = fs_path_add(new_path, ref->name, ref->name_len); if (ret < 0) { +free_path: fs_path_free(new_path); return ret; }