Re: [PATCH 01/24] kobject: return actual error on kset_create_and_add

From: Greg KH
Date: Tue Jun 17 2014 - 11:46:39 EST


On Tue, Jun 17, 2014 at 10:56:04PM +0800, Jeff Liu wrote:
>
> On 06/17/2014 22:42 PM, James Bottomley wrote:
> > On Tue, 2014-06-17 at 22:25 +0800, Jeff Liu wrote:
> >> From: Jie Liu <jeff.liu@xxxxxxxxxx>
> >>
> >> It's better to return the actual error rather than NULL because
> >> kset_register() can failed due to other reasons.
> >>
> >> Cc: Christoph Lameter <cl@xxxxxxxxxxxxxxxxxxxx>
> >> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> >> Cc: Pekka Enberg <penberg@xxxxxxxxxx>
> >> Cc: Matt Mackall <mpm@xxxxxxxxxxx>
> >> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> >> Cc: Paul Mackerras <paulus@xxxxxxxxx>
> >> Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
> >> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> >> Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> >> Cc: David S. Miller <davem@xxxxxxxxxxxxx>
> >> Cc: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
> >> Cc: Joerg Roedel <joro@xxxxxxxxxx>
> >> Cc: James E.J. Bottomley <JBottomley@xxxxxxxxxxxxx>
> >> Cc: Helge Deller <deller@xxxxxx>
> >> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> >> Cc: Chris Mason <clm@xxxxxx>
> >> Cc: Josef Bacik <jbacik@xxxxxx>
> >> Cc: Steven Whitehouse <swhiteho@xxxxxxxxxx>
> >> Cc: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
> >> Cc: Benny Halevy <bhalevy@xxxxxxxxxxxxxxx>
> >> Cc: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> >> Cc: David Teigland <teigland@xxxxxxxxxx>
> >> Cc: Theodore Ts'o <tytso@xxxxxxx>
> >> Cc: Andreas Dilger <adilger.kernel@xxxxxxxxx>
> >> Cc: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
> >> Cc: Changman Lee <cm224.lee@xxxxxxxxxxx>
> >> Cc: Mark Fasheh <mfasheh@xxxxxxxx>
> >> Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
> >> Cc: Casey Schaufler <casey@xxxxxxxxxxxxxxxx>
> >> Signed-off-by: Jie Liu <jeff.liu@xxxxxxxxxx>
> >> ---
> >> lib/kobject.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/lib/kobject.c b/lib/kobject.c
> >> index 58751bb..538c617 100644
> >> --- a/lib/kobject.c
> >> +++ b/lib/kobject.c
> >> @@ -919,11 +919,11 @@ struct kset *kset_create_and_add(const char *name,
> >>
> >> kset = kset_create(name, uevent_ops, parent_kobj);
> >> if (!kset)
> >> - return NULL;
> >> + return ERR_PTR(-ENOMEM);
> >> error = kset_register(kset);
> >> if (error) {
> >> kfree(kset);
> >> - return NULL;
> >> + return ERR_PTR(error);
> >> }
> >> return kset;
> >> }
> >
> > This patch series isn't bisectable. When changing an error signal from
> > NULL to non-NULL, you have to do it as one patch, otherwise if a
> > bisection lands in here we'll get error returns from all our kobject
> > kset code and the kernel won't boot.
>
> Thanks for pointing this out.
>
> > It's fine if you're sending it out as 24 patches for review, but it has
> > to be applied as a single one.
>
> Ok, I'll post the v2 patch as a single one once this series has been reviewed.

Also, now that you sent a bunch of different patches out, some
maintainers will not realize that this first one has to be applied (i.e.
you gave them no sense that there was a dependancy.)

You will have to watch very carefully to ensure that those patches do
not now get accepted, as they will break the existing code.

Not good.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/