2008-08-08 16:28:17

by Adrian Bunk

[permalink] [raw]
Subject: [2.6 patch] uninline nfsd4_op_name()

There doesn't seem to be a compelling reason why nfsd4_op_name() is
marked as "inline":

It's only used in a dprintk(), and as long as it has only one caller
non-ancient gcc versions anyway inline it automatically.

This patch fixes the following compile error with gcc 3.4:

<-- snip -->

...
CC fs/nfsd/nfs4proc.o
nfs4proc.c: In function `nfsd4_proc_compound':
nfs4proc.c:854: sorry, unimplemented: inlining failed in call to
nfs4proc.c:897: sorry, unimplemented: called from here
make[3]: *** [fs/nfsd/nfs4proc.o] Error 1

<-- snip -->

Reported-by: Adrian Bunk <[email protected]>
Signed-off-by: Adrian Bunk <[email protected]>

---
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -851,7 +851,7 @@ struct nfsd4_operation {

static struct nfsd4_operation nfsd4_ops[];

-static inline char *nfsd4_op_name(unsigned opnum);
+static char *nfsd4_op_name(unsigned opnum);

/*
* COMPOUND call.
@@ -1116,8 +1116,7 @@ static struct nfsd4_operation nfsd4_ops[OP_RELEASE_LOCKOWNER+1] = {
},
};

-static inline char *
-nfsd4_op_name(unsigned opnum)
+static char *nfsd4_op_name(unsigned opnum)
{
if (opnum < ARRAY_SIZE(nfsd4_ops))
return nfsd4_ops[opnum].op_name;



2008-08-08 18:26:27

by Linus Torvalds

[permalink] [raw]
Subject: Re: [2.6 patch] uninline nfsd4_op_name()



On Fri, 8 Aug 2008, Adrian Bunk wrote:
>
> There doesn't seem to be a compelling reason why nfsd4_op_name() is
> marked as "inline":

It should also return a "const char *", I think.

Since it does.

Linus

2008-08-10 11:33:17

by Benny Halevy

[permalink] [raw]
Subject: Re: [2.6 patch] uninline nfsd4_op_name()

Linus Torvalds wrote:
>
> On Fri, 8 Aug 2008, Adrian Bunk wrote:
>> There doesn't seem to be a compelling reason why nfsd4_op_name() is
>> marked as "inline":

Agreed.

>
> It should also return a "const char *", I think.
>
> Since it does.

Right.

>
> Linus

Thanks for picking this up,

Benny

2008-08-11 03:03:51

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [2.6 patch] uninline nfsd4_op_name()

On Sun, Aug 10, 2008 at 02:32:31PM +0300, Benny Halevy wrote:
> Linus Torvalds wrote:
> >
> > On Fri, 8 Aug 2008, Adrian Bunk wrote:
> >> There doesn't seem to be a compelling reason why nfsd4_op_name() is
> >> marked as "inline":
>
> Agreed.
>
> >
> > It should also return a "const char *", I think.
> >
> > Since it does.
>
> Right.

OK, I modified that to add "const" as Linus suggests, and applied to

git://linux-nfs.org/~bfields/linux.git for-2.6.27

Thanks to everyone.

--b.

2008-08-11 08:48:33

by Benny Halevy

[permalink] [raw]
Subject: Re: [2.6 patch] uninline nfsd4_op_name()

On Aug. 11, 2008, 6:03 +0300, "J. Bruce Fields" <[email protected]> wrote:
> On Sun, Aug 10, 2008 at 02:32:31PM +0300, Benny Halevy wrote:
>> Linus Torvalds wrote:
>>> On Fri, 8 Aug 2008, Adrian Bunk wrote:
>>>> There doesn't seem to be a compelling reason why nfsd4_op_name() is
>>>> marked as "inline":
>> Agreed.
>>
>>> It should also return a "const char *", I think.
>>>
>>> Since it does.
>> Right.
>
> OK, I modified that to add "const" as Linus suggests, and applied to
>
> git://linux-nfs.org/~bfields/linux.git for-2.6.27
>
> Thanks to everyone.
>
> --b.

Bruce, Linus already corrected and merged Adrian's patch in
linux-2.6/master as commit f1c7f79b6ab4f7ada002a0fae47f462ede6b6857

Benny

2008-08-11 15:39:34

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [2.6 patch] uninline nfsd4_op_name()

On Mon, Aug 11, 2008 at 11:47:44AM +0300, Benny Halevy wrote:
> On Aug. 11, 2008, 6:03 +0300, "J. Bruce Fields" <[email protected]> wrote:
> > On Sun, Aug 10, 2008 at 02:32:31PM +0300, Benny Halevy wrote:
> >> Linus Torvalds wrote:
> >>> On Fri, 8 Aug 2008, Adrian Bunk wrote:
> >>>> There doesn't seem to be a compelling reason why nfsd4_op_name() is
> >>>> marked as "inline":
> >> Agreed.
> >>
> >>> It should also return a "const char *", I think.
> >>>
> >>> Since it does.
> >> Right.
> >
> > OK, I modified that to add "const" as Linus suggests, and applied to
> >
> > git://linux-nfs.org/~bfields/linux.git for-2.6.27
> >
> > Thanks to everyone.
> >
> > --b.
>
> Bruce, Linus already corrected and merged Adrian's patch in
> linux-2.6/master as commit f1c7f79b6ab4f7ada002a0fae47f462ede6b6857

Oops, I thought I'd checked for that, but somehow I overlooked that
commit. Thanks.--b.