From: Adam Kropelin <akropel1@rochester.rr.com>
To: Rob Wilkens <robw@optonline.net>
Cc: Matti Aarnio <matti.aarnio@zmailer.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: any chance of 2.6.0-test*?
Date: Sun, 12 Jan 2003 16:59:49 -0500 [thread overview]
Message-ID: <20030112215949.GA2392@www.kroptech.com> (raw)
In-Reply-To: <1042406849.3162.121.camel@RobsPC.RobertWilkens.com>
On Sun, Jan 12, 2003 at 04:27:30PM -0500, Rob Wilkens wrote:
> On Sun, 2003-01-12 at 16:15, Matti Aarnio wrote:
> > On Sun, Jan 12, 2003 at 02:34:54PM -0500, Rob Wilkens wrote:
> > > Linus,
> > >
> > > I'm REALLY opposed to the use of the word "goto" in any code where it's
> > > not needed. OF course, I'm a linux kernel newbie, so I'm in no position
> > > to comment
> >
> > fs/open.c file do_sys_truncate() function.
> >
> > Explain how you can do that cleanly, understandably, and without
> > code duplication, or ugly kludges without using those goto ?
> > (And sticking to coding-style.)
>
> I've only compiled (and haven't tested this code), but it should be much
> faster than the original code. Why? Because we're eliminating an extra
> "jump" in several places in the code every time open would be called.
Congratulations. You've possibly increased the speed of an error path by
an infintessimal amount at the expense of increasing the size of kernel
image and making the code harder to read and maintain. (I say "possibly"
since with caching effects you may have actually slowed the code down.)
Harder to read: The primary code path is polluted with repetative code
that has no bearing on its primary mission.
Harder to maintain: Add an extra resource allocation near the top and
now you have to hunt out every failure case and manually update them all
(with yet more duplicate code) instead of just amending the cleanup code
at the end of the function.
> error = -EINVAL;
> if (length < 0) /* sorry, but loff_t says... */
> - goto out;
> + return error;
Possibly an improvement, though there are maintenance and consistency
arguments against it.
> /* For directories it's -EISDIR, for other non-regulars - -EINVAL */
> error = -EISDIR;
> - if (S_ISDIR(inode->i_mode))
> - goto dput_and_out;
> + if (S_ISDIR(inode->i_mode)){
> + path_release(&nd);
> + return error;
> + }
Nope. This code is precisely what the on-error-goto method is used
to avoid.
The use of goto in the kernel surprised me the first time I saw it, too.
However, rather than hurry to point out how much more I knew about C
style than the kernel hackers, I stayed quiet and made a learning
experience of it. I suggest you do the same.
--Adam
next prev parent reply other threads:[~2003-01-12 21:52 UTC|newest]
Thread overview: 201+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-10 16:10 any chance of 2.6.0-test*? William Lee Irwin III
2003-01-10 16:28 ` Dave Jones
2003-01-10 16:41 ` Zwane Mwaikambo
2003-01-10 17:08 ` Dave Jones
2003-01-10 17:19 ` Alan Cox
2003-01-10 16:40 ` Jeff Garzik
2003-01-10 17:06 ` Dave Jones
2003-01-10 17:25 ` Jeff Garzik
2003-01-10 17:29 ` Linus Torvalds
2003-01-10 18:47 ` J.A. Magallon
2003-01-10 19:37 ` Matthew D. Pitts
2003-01-10 19:51 ` Jeff Garzik
2003-01-14 1:39 ` James H. Cloos Jr.
2003-01-15 21:46 ` [PATCH][RESEND w/ reasonable Subject] alsa before oss in Kconfig James H. Cloos Jr.
2003-01-10 18:16 ` any chance of 2.6.0-test*? Alan Cox
2003-01-10 17:37 ` Jochen Friedrich
2003-01-10 17:38 ` Linus Torvalds
2003-01-12 9:27 ` Greg KH
2003-01-12 16:55 ` Alan Cox
2003-01-12 17:05 ` Linus Torvalds
2003-01-12 17:17 ` Christoph Hellwig
2003-01-12 19:15 ` Linus Torvalds
2003-01-12 19:34 ` Rob Wilkens
2003-01-12 19:37 ` Rob Wilkens
2003-01-12 19:53 ` Tomas Szepe
2003-01-12 20:03 ` Rob Wilkens
2003-01-13 15:43 ` Terje Eggestad
2003-01-13 15:49 ` Jens Axboe
2003-01-13 16:25 ` Terje Eggestad
2003-01-13 16:26 ` Jens Axboe
2003-01-13 16:41 ` Terje Eggestad
2003-01-13 16:43 ` Jens Axboe
2003-01-13 17:00 ` Zwane Mwaikambo
2003-01-13 18:48 ` Jens Axboe
2003-01-13 22:14 ` Keith Owens
2003-01-13 22:42 ` John Levon
2003-01-13 22:49 ` Zwane Mwaikambo
2003-01-13 23:32 ` Valdis.Kletnieks
2003-01-13 23:43 ` Zwane Mwaikambo
2003-01-12 20:44 ` Alan Cox
2003-01-12 21:22 ` David Woodhouse
2003-01-12 20:45 ` William Lee Irwin III
2003-01-13 13:14 ` Bernd Schmidt
2003-01-18 13:04 ` Folkert van Heusden
2003-01-12 19:38 ` Linus Torvalds
2003-01-12 19:59 ` Rob Wilkens
2003-01-12 20:18 ` Valdis.Kletnieks
2003-01-12 20:23 ` yodaiken
2003-01-12 20:26 ` Tomas Szepe
2003-01-12 20:32 ` Sean Neakums
2003-01-12 20:51 ` Valdis.Kletnieks
2003-01-13 0:54 ` Randy Dunlap
2003-01-12 20:46 ` Kevin Puetz
2003-01-13 0:48 ` Randy Dunlap
2003-01-18 13:07 ` Folkert van Heusden
2003-01-12 20:20 ` David Ford
2003-01-12 20:22 ` Linus Torvalds
2003-01-12 20:33 ` Robert Love
2003-01-12 20:33 ` Linus Torvalds
2003-01-13 10:54 ` Horst von Brand
2003-01-13 11:09 ` Eric W. Biederman
2003-01-13 14:34 ` Terje Eggestad
2003-01-13 23:23 ` Bob Taylor
2003-01-12 20:48 ` Rob Wilkens
2003-01-12 20:59 ` Dimitrie O. Paun
2003-01-12 22:48 ` any chance of 2.6.0-test*? -> goto example Willy Tarreau
2003-01-13 0:53 ` Rob Wilkens
2003-01-13 1:31 ` Willy Tarreau
2003-01-13 16:10 ` Alexander Kellett
2003-01-14 10:36 ` Helge Hafting
2003-01-12 23:11 ` Coding style - (Was Re: any chance of 2.6.0-test*?) John Bradford
2003-01-13 11:07 ` any chance of 2.6.0-test*? Helge Hafting
2003-01-13 3:30 ` yodaiken
2003-01-12 21:29 ` Rik van Riel
2003-01-13 0:03 ` Scott Robert Ladd
2003-01-13 0:38 ` Rob Wilkens
2003-01-13 3:06 ` [OT] " J Sloan
2003-01-13 16:51 ` Emiliano Gabrielli
2003-01-13 0:38 ` Randy Dunlap
2003-01-12 19:41 ` Christoph Hellwig
2003-01-12 19:41 ` Rob Wilkens
2003-01-12 19:58 ` David Ford
2003-01-12 20:07 ` Rob Wilkens
2003-01-12 20:31 ` Oliver Neukum
2003-01-12 20:34 ` David Ford
2003-01-12 20:31 ` Robert Love
2003-01-12 21:02 ` Rob Wilkens
2003-01-12 21:15 ` Matti Aarnio
2003-01-12 21:27 ` Rob Wilkens
2003-01-12 21:40 ` Rik van Riel
2003-01-12 21:44 ` Rob Wilkens
2003-01-12 21:49 ` Aaron Lehmann
2003-01-12 22:07 ` Rob Wilkens
2003-01-12 22:18 ` Aaron Lehmann
2003-01-12 22:34 ` Rob Wilkens
2003-01-12 22:52 ` Aaron Lehmann
2003-01-12 23:11 ` Rob Wilkens
2003-01-12 23:31 ` Oliver Neukum
2003-01-12 23:39 ` Emiliano Gabrielli
2003-01-12 23:46 ` Rob Wilkens
2003-01-12 23:57 ` Emiliano Gabrielli
2003-01-13 0:08 ` Rob Wilkens
2003-01-13 16:02 ` Terje Eggestad
2003-01-12 22:53 ` Sean Neakums
2003-01-12 23:06 ` Oliver Neukum
2003-01-12 23:48 ` Rik van Riel
2003-01-12 21:58 ` Emiliano Gabrielli
2003-01-12 22:12 ` Rob Wilkens
2003-01-12 22:29 ` Olivier Galibert
2003-01-12 23:21 ` Alan Cox
2003-01-12 22:12 ` Oliver Neukum
2003-01-12 22:18 ` Aaron Lehmann
2003-01-12 22:35 ` Rob Wilkens
2003-01-13 8:15 ` Jens Axboe
2003-01-12 21:49 ` David Ford
2003-01-13 19:22 ` [OffTopic] [apology] " Rob Wilkens
2003-01-12 21:59 ` Adam Kropelin [this message]
2003-01-12 22:21 ` Rob Wilkens
2003-01-12 22:33 ` Tomas Szepe
2003-01-12 22:36 ` Emiliano Gabrielli
2003-01-12 22:38 ` Oliver Neukum
2003-01-12 22:42 ` romieu
2003-01-13 1:06 ` Randy Dunlap
2003-01-13 1:21 ` Rob Wilkens
2003-01-13 1:51 ` Nuno Monteiro
2003-01-13 2:19 ` Rob Wilkens
2003-01-13 2:51 ` Marcelo Pacheco
2003-01-13 3:37 ` Rob Wilkens
2003-01-13 4:53 ` Billy Rose
2003-01-13 3:06 ` Jochen Striepe
2003-01-13 3:40 ` Rob Wilkens
2003-01-13 9:45 ` Matti Aarnio
2003-01-13 3:48 ` Ryan Anderson
2003-01-13 4:37 ` Billy Rose
2003-01-12 22:06 ` Oliver Neukum
2003-01-12 22:22 ` Rob Wilkens
2003-01-12 22:43 ` Oliver Neukum
2003-01-12 22:51 ` Rob Wilkens
2003-01-12 23:00 ` Robert Love
2003-01-12 23:16 ` Rob Wilkens
2003-01-12 23:16 ` Nicolas Pitre
2003-01-12 23:05 ` Emiliano Gabrielli
2003-01-12 23:23 ` Oliver Neukum
2003-01-12 23:45 ` Emiliano Gabrielli
2003-01-12 23:45 ` Emiliano Gabrielli
2003-01-13 20:01 ` Horst von Brand
2003-01-12 23:16 ` Oliver Neukum
2003-01-13 2:00 ` Ryan Anderson
2003-01-13 3:09 ` Rob Wilkens
2003-01-14 2:13 ` Rik van Riel
2003-01-12 22:58 ` Robert Love
2003-01-12 22:28 ` Matti Aarnio
2003-01-13 1:26 ` David Lang
2003-01-13 2:00 ` William Lee Irwin III
2003-01-13 11:08 ` How to avoid the woord 'goto' (was Re: any chance of 2.6.0-test*?) Bernd Petrovitsch
2003-01-13 14:56 ` Rob Wilkens
2003-01-13 22:02 ` any chance of 2.6.0-test*? Val Henson
2003-01-13 10:32 ` gotos in kernel [Was: Re: any chance of 2.6.0-test*?] Horst von Brand
2003-01-13 14:53 ` Rob Wilkens
2003-01-13 13:08 ` any chance of 2.6.0-test*? Dave Jones
2003-01-13 13:40 ` Andrew Walrond
2003-01-13 13:49 ` Oliver Neukum
2003-01-14 6:52 ` Bruce Harada
2003-01-14 7:12 ` Brian Tinsley
2003-01-13 15:23 ` Richard B. Johnson
2003-01-13 6:23 ` Greg KH
2003-01-13 16:35 ` Linus Torvalds
2003-01-13 18:33 ` Alan Cox
2003-01-13 18:01 ` Linus Torvalds
2003-01-13 19:17 ` Andrew McGregor
2003-01-12 17:37 ` Russell King
2003-01-13 1:08 ` Michael Kingsbury
2003-01-13 1:52 ` William Lee Irwin III
-- strict thread matches above, loose matches on Subject: below --
2003-01-10 16:39 Shawn Starr
2003-01-10 17:00 ` Dave Jones
2003-01-11 20:10 ` Horst von Brand
[not found] <20030110144325.T26554@parcelfarce.linux.theplanet.co.uk>
[not found] ` <20030110.130023.08256524.davem@redhat.com>
2003-01-10 21:48 ` Matthew Wilcox
[not found] <20030110165441$1a8a@gated-at.bofh.it>
[not found] ` <20030110165505$38d9@gated-at.bofh.it>
2003-01-11 12:27 ` Andi Kleen
2003-01-11 13:01 ` Russell King
2003-01-11 13:13 ` Andi Kleen
2003-01-11 14:39 ` Alan Cox
2003-01-11 14:06 ` Andi Kleen
2003-01-11 15:31 ` Alan Cox
2003-01-11 15:25 ` Andi Kleen
2003-01-11 19:18 ` Alan Cox
2003-01-13 3:33 ` Paul Mackerras
2003-01-13 14:59 ` Alan Cox
2003-01-13 18:36 ` Benjamin Herrenschmidt
2003-01-19 16:05 ` Pavel Machek
2003-01-12 18:02 David Truog
[not found] <3C6BEE8B5E1BAC42905A93F13004E8AB017DE60F@mailse01.axis.se>
2003-01-12 20:58 ` Rob Wilkens
2003-01-13 20:37 Manfred Spraul
2003-01-13 22:37 Albert D. Cahalan
[not found] <20030112201009$1534@gated-at.bofh.it>
[not found] ` <20030112204005$7287@gated-at.bofh.it>
2003-01-14 19:53 ` Kai Henningsen
2003-01-15 15:07 ` Scott Robert Ladd
2003-01-15 15:18 ` Marcelo Pacheco
2003-01-18 10:12 ` Kai Henningsen
2003-01-15 19:44 ` Werner Almesberger
[not found] <20030112205008$7a5d@gated-at.bofh.it>
[not found] ` <20030113112009$52fd@gated-at.bofh.it>
[not found] ` <20030113144017$68de@gated-at.bofh.it>
2003-01-14 20:01 ` Kai Henningsen
[not found] <20030112193012$71b2@gated-at.bofh.it>
[not found] ` <20030113020015$6883@gated-at.bofh.it>
[not found] ` <20030113023015$66a6@gated-at.bofh.it>
[not found] ` <20030113030011$6563@gated-at.bofh.it>
[not found] ` <20030113035007$451e@gated-at.bofh.it>
2003-01-14 20:18 ` Kai Henningsen
[not found] <20030113001006$005c@gated-at.bofh.it>
[not found] ` <20030113005007$4766@gated-at.bofh.it>
[not found] ` <20030113170014$20a1@gated-at.bofh.it>
2003-01-18 10:21 ` Kai Henningsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030112215949.GA2392@www.kroptech.com \
--to=akropel1@rochester.rr.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matti.aarnio@zmailer.org \
--cc=robw@optonline.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox