Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1557104 > unrolled thread
| Started by | Stephen Rothwell <sfr@canb.auug.org.au> |
|---|---|
| First post | 2017-01-12 04:50 +0100 |
| Last post | 2017-01-13 07:10 +0100 |
| Articles | 6 — 3 participants |
Back to article view | Back to linux.kernel
linux-next: build failure after merge of the akpm-current tree Stephen Rothwell <sfr@canb.auug.org.au> - 2017-01-12 04:50 +0100
Re: linux-next: build failure after merge of the akpm-current tree Eric Ren <zren@suse.com> - 2017-01-12 06:10 +0100
Re: linux-next: build failure after merge of the akpm-current tree Andrew Morton <akpm@linux-foundation.org> - 2017-01-13 00:40 +0100
Re: linux-next: build failure after merge of the akpm-current tree Stephen Rothwell <sfr@canb.auug.org.au> - 2017-01-13 04:40 +0100
Re: linux-next: build failure after merge of the akpm-current tree Stephen Rothwell <sfr@canb.auug.org.au> - 2017-01-13 04:50 +0100
Re: linux-next: build failure after merge of the akpm-current tree Eric Ren <zren@suse.com> - 2017-01-13 07:10 +0100
| From | Stephen Rothwell <sfr@canb.auug.org.au> |
|---|---|
| Date | 2017-01-12 04:50 +0100 |
| Subject | linux-next: build failure after merge of the akpm-current tree |
| Message-ID | <sYEyK-7iM-21@gated-at.bofh.it> |
Hi Andrew,
After merging the akpm tree, today's linux-next build (powerpc
allyesconfig) failed like this:
In file included from fs/ocfs2/file.c:49:0:
fs/ocfs2/file.c: In function 'ocfs2_permission':
fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
^
fs/ocfs2/file.c:1345:16: error: called from here
has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
^
In file included from fs/ocfs2/file.c:49:0:
fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
^
fs/ocfs2/file.c:1345:16: error: called from here
has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
^
In file included from fs/ocfs2/file.c:49:0:
fs/ocfs2/dlmglue.h:185:13: error: inlining failed in call to always_inline 'ocfs2_add_holder': function body not available
inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
^
fs/ocfs2/file.c:1353:3: error: called from here
ocfs2_add_holder(lockres, &oh);
^
In file included from fs/ocfs2/file.c:49:0:
fs/ocfs2/dlmglue.h:187:13: error: inlining failed in call to always_inline 'ocfs2_remove_holder': function body not available
inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
^
fs/ocfs2/file.c:1359:3: error: called from here
ocfs2_remove_holder(lockres, &oh);
^
In file included from fs/ocfs2/acl.c:31:0:
fs/ocfs2/acl.c: In function 'ocfs2_iop_set_acl':
fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
^
fs/ocfs2/acl.c:292:16: error: called from here
has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
^
In file included from fs/ocfs2/acl.c:31:0:
fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
^
fs/ocfs2/acl.c:292:16: error: called from here
has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
^
In file included from fs/ocfs2/acl.c:31:0:
fs/ocfs2/dlmglue.h:185:13: error: inlining failed in call to always_inline 'ocfs2_add_holder': function body not available
inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
^
fs/ocfs2/acl.c:302:3: error: called from here
ocfs2_add_holder(lockres, &oh);
^
In file included from fs/ocfs2/acl.c:31:0:
fs/ocfs2/dlmglue.h:187:13: error: inlining failed in call to always_inline 'ocfs2_remove_holder': function body not available
inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
^
fs/ocfs2/acl.c:307:3: error: called from here
ocfs2_remove_holder(lockres, &oh);
^
Caused by commits
984c4659d463 ("ocfs2/dlmglue: prepare tracking logic to avoid recursive cluster lock")
0ca17730270e ("ocfs2: fix deadlocks when taking inode lock at vfs entry points")
I applied this fix patch for today:
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 12 Jan 2017 14:40:03 +1100
Subject: [PATCH] ocfs2/dmglue: do not inline functions whose bodies are not in
scope
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
fs/ocfs2/dlmglue.c | 6 +++---
fs/ocfs2/dlmglue.h | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index 951f5d9a0884..f0823f4d0afd 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -750,7 +750,7 @@ void ocfs2_lock_res_free(struct ocfs2_lock_res *res)
res->l_flags = 0UL;
}
-inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
+void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
struct ocfs2_holder *oh)
{
INIT_LIST_HEAD(&oh->oh_list);
@@ -761,7 +761,7 @@ inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
spin_unlock(&lockres->l_lock);
}
-inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
+void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
struct ocfs2_holder *oh)
{
spin_lock(&lockres->l_lock);
@@ -771,7 +771,7 @@ inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
put_pid(oh->oh_owner_pid);
}
-inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres)
+struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres)
{
struct ocfs2_holder *oh;
struct pid *pid;
diff --git a/fs/ocfs2/dlmglue.h b/fs/ocfs2/dlmglue.h
index d65ff1e49552..7f0c07bb30a3 100644
--- a/fs/ocfs2/dlmglue.h
+++ b/fs/ocfs2/dlmglue.h
@@ -182,10 +182,10 @@ void ocfs2_set_locking_protocol(void);
* Keep a list of processes who have interest in a lockres.
* Note: this is now only uesed for check recursive cluster lock.
*/
-inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
+void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
struct ocfs2_holder *oh);
-inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
+void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
struct ocfs2_holder *oh);
-inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
+struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
#endif /* DLMGLUE_H */
--
2.10.2
--
Cheers,
Stephen Rothwell
[toc] | [next] | [standalone]
| From | Eric Ren <zren@suse.com> |
|---|---|
| Date | 2017-01-12 06:10 +0100 |
| Message-ID | <sYFOa-8ia-17@gated-at.bofh.it> |
| In reply to | #1557104 |
Hi Stephen,
Thanks for your report and the fix for it. The 0-day project has reported several days ago,
but this patch set is still in discussion, so I am waiting for more days to see if other
developers
have any other questions.
I am confused that how to deal with your patch if I need to work out the V2 patch set. Perhaps,
pick up your fix and add your efforts in the change log?
Thanks,
Eric
On 01/12/2017 11:49 AM, Stephen Rothwell wrote:
> Hi Andrew,
>
> After merging the akpm tree, today's linux-next build (powerpc
> allyesconfig) failed like this:
>
> In file included from fs/ocfs2/file.c:49:0:
> fs/ocfs2/file.c: In function 'ocfs2_permission':
> fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
> inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
> ^
> fs/ocfs2/file.c:1345:16: error: called from here
> has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
> ^
> In file included from fs/ocfs2/file.c:49:0:
> fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
> inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
> ^
> fs/ocfs2/file.c:1345:16: error: called from here
> has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
> ^
> In file included from fs/ocfs2/file.c:49:0:
> fs/ocfs2/dlmglue.h:185:13: error: inlining failed in call to always_inline 'ocfs2_add_holder': function body not available
> inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
> ^
> fs/ocfs2/file.c:1353:3: error: called from here
> ocfs2_add_holder(lockres, &oh);
> ^
> In file included from fs/ocfs2/file.c:49:0:
> fs/ocfs2/dlmglue.h:187:13: error: inlining failed in call to always_inline 'ocfs2_remove_holder': function body not available
> inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
> ^
> fs/ocfs2/file.c:1359:3: error: called from here
> ocfs2_remove_holder(lockres, &oh);
> ^
> In file included from fs/ocfs2/acl.c:31:0:
> fs/ocfs2/acl.c: In function 'ocfs2_iop_set_acl':
> fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
> inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
> ^
> fs/ocfs2/acl.c:292:16: error: called from here
> has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
> ^
> In file included from fs/ocfs2/acl.c:31:0:
> fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
> inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
> ^
> fs/ocfs2/acl.c:292:16: error: called from here
> has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
> ^
> In file included from fs/ocfs2/acl.c:31:0:
> fs/ocfs2/dlmglue.h:185:13: error: inlining failed in call to always_inline 'ocfs2_add_holder': function body not available
> inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
> ^
> fs/ocfs2/acl.c:302:3: error: called from here
> ocfs2_add_holder(lockres, &oh);
> ^
> In file included from fs/ocfs2/acl.c:31:0:
> fs/ocfs2/dlmglue.h:187:13: error: inlining failed in call to always_inline 'ocfs2_remove_holder': function body not available
> inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
> ^
> fs/ocfs2/acl.c:307:3: error: called from here
> ocfs2_remove_holder(lockres, &oh);
> ^
>
> Caused by commits
>
> 984c4659d463 ("ocfs2/dlmglue: prepare tracking logic to avoid recursive cluster lock")
> 0ca17730270e ("ocfs2: fix deadlocks when taking inode lock at vfs entry points")
>
> I applied this fix patch for today:
>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Thu, 12 Jan 2017 14:40:03 +1100
> Subject: [PATCH] ocfs2/dmglue: do not inline functions whose bodies are not in
> scope
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
> fs/ocfs2/dlmglue.c | 6 +++---
> fs/ocfs2/dlmglue.h | 6 +++---
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
> index 951f5d9a0884..f0823f4d0afd 100644
> --- a/fs/ocfs2/dlmglue.c
> +++ b/fs/ocfs2/dlmglue.c
> @@ -750,7 +750,7 @@ void ocfs2_lock_res_free(struct ocfs2_lock_res *res)
> res->l_flags = 0UL;
> }
>
> -inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
> +void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
> struct ocfs2_holder *oh)
> {
> INIT_LIST_HEAD(&oh->oh_list);
> @@ -761,7 +761,7 @@ inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
> spin_unlock(&lockres->l_lock);
> }
>
> -inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
> +void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
> struct ocfs2_holder *oh)
> {
> spin_lock(&lockres->l_lock);
> @@ -771,7 +771,7 @@ inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
> put_pid(oh->oh_owner_pid);
> }
>
> -inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres)
> +struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres)
> {
> struct ocfs2_holder *oh;
> struct pid *pid;
> diff --git a/fs/ocfs2/dlmglue.h b/fs/ocfs2/dlmglue.h
> index d65ff1e49552..7f0c07bb30a3 100644
> --- a/fs/ocfs2/dlmglue.h
> +++ b/fs/ocfs2/dlmglue.h
> @@ -182,10 +182,10 @@ void ocfs2_set_locking_protocol(void);
> * Keep a list of processes who have interest in a lockres.
> * Note: this is now only uesed for check recursive cluster lock.
> */
> -inline void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
> +void ocfs2_add_holder(struct ocfs2_lock_res *lockres,
> struct ocfs2_holder *oh);
> -inline void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
> +void ocfs2_remove_holder(struct ocfs2_lock_res *lockres,
> struct ocfs2_holder *oh);
> -inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
> +struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
>
> #endif /* DLMGLUE_H */
[toc] | [prev] | [next] | [standalone]
| From | Andrew Morton <akpm@linux-foundation.org> |
|---|---|
| Date | 2017-01-13 00:40 +0100 |
| Message-ID | <sYX8l-1Li-5@gated-at.bofh.it> |
| In reply to | #1557120 |
On Thu, 12 Jan 2017 13:06:01 +0800 Eric Ren <zren@suse.com> wrote:
> On 01/12/2017 11:49 AM, Stephen Rothwell wrote:
> > Hi Andrew,
> >
> > After merging the akpm tree, today's linux-next build (powerpc
> > allyesconfig) failed like this:
> >
> > In file included from fs/ocfs2/file.c:49:0:
> > fs/ocfs2/file.c: In function 'ocfs2_permission':
> > fs/ocfs2/dlmglue.h:189:29: error: inlining failed in call to always_inline 'ocfs2_is_locked_by_me': function body not available
> > inline struct ocfs2_holder *ocfs2_is_locked_by_me(struct ocfs2_lock_res *lockres);
> > ^
> > fs/ocfs2/file.c:1345:16: error: called from here
> > has_locked = (ocfs2_is_locked_by_me(lockres) != NULL);
> > ^
> ...
> >
> > Caused by commits
> >
> > 984c4659d463 ("ocfs2/dlmglue: prepare tracking logic to avoid recursive cluster lock")
> > 0ca17730270e ("ocfs2: fix deadlocks when taking inode lock at vfs entry points")
> >
(top-posting repaired. Please don't do that)
> Hi Stephen,
>
> Thanks for your report and the fix for it. The 0-day project has reported several days ago,
> but this patch set is still in discussion, so I am waiting for more days to see if other
> developers
> have any other questions.
>
> I am confused that how to deal with your patch if I need to work out the V2 patch set. Perhaps,
> pick up your fix and add your efforts in the change log?
>
I'll drop
ocfs2-dlmglue-prepare-tracking-logic-to-avoid-recursive-cluster-lock.patch
and
ocfs2-fix-deadlocks-when-taking-inode-lock-at-vfs-entry-points.patch
[toc] | [prev] | [next] | [standalone]
| From | Stephen Rothwell <sfr@canb.auug.org.au> |
|---|---|
| Date | 2017-01-13 04:40 +0100 |
| Message-ID | <sZ0SB-4cE-5@gated-at.bofh.it> |
| In reply to | #1557918 |
Hi Andrew, On Thu, 12 Jan 2017 15:33:53 -0800 Andrew Morton <akpm@linux-foundation.org> wrote: > > I'll drop > > ocfs2-dlmglue-prepare-tracking-logic-to-avoid-recursive-cluster-lock.patch > and > ocfs2-fix-deadlocks-when-taking-inode-lock-at-vfs-entry-points.patch I removed them from linux-next today. -- Cheers, Stephen Rothwell
[toc] | [prev] | [next] | [standalone]
| From | Stephen Rothwell <sfr@canb.auug.org.au> |
|---|---|
| Date | 2017-01-13 04:50 +0100 |
| Message-ID | <sZ12h-4fJ-9@gated-at.bofh.it> |
| In reply to | #1557120 |
Hi Eric, On Thu, 12 Jan 2017 13:06:01 +0800 Eric Ren <zren@suse.com> wrote: > > Thanks for your report and the fix for it. The 0-day project has reported several days ago, > but this patch set is still in discussion, so I am waiting for more days to see if other > developers > have any other questions. > > I am confused that how to deal with your patch if I need to work out the V2 patch set. Perhaps, > pick up your fix and add your efforts in the change log? If you had already fixed the problem, then just submit your new version. You only need to give credit when you use someone's work. If you want to give credit, then maybe a line like: [sfr@canb.auug.org.au remove some inlines] among the Signed-off-by: lines -- Cheers, Stephen Rothwell
[toc] | [prev] | [next] | [standalone]
| From | Eric Ren <zren@suse.com> |
|---|---|
| Date | 2017-01-13 07:10 +0100 |
| Message-ID | <sZ3dM-5M4-5@gated-at.bofh.it> |
| In reply to | #1557996 |
Hi, On 01/13/2017 11:42 AM, Stephen Rothwell wrote: > Hi Eric, > > On Thu, 12 Jan 2017 13:06:01 +0800 Eric Ren <zren@suse.com> wrote: >> Thanks for your report and the fix for it. The 0-day project has reported several days ago, >> but this patch set is still in discussion, so I am waiting for more days to see if other >> developers >> have any other questions. >> >> I am confused that how to deal with your patch if I need to work out the V2 patch set. Perhaps, >> pick up your fix and add your efforts in the change log? > If you had already fixed the problem, then just submit your new > version. You only need to give credit when you use someone's work. > > If you want to give credit, then maybe a line like: > > [sfr@canb.auug.org.au remove some inlines] > > among the Signed-off-by: lines Sure! I always keep it in mind;-) Thanks, Eric
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web