Subject: linux-next: build failure after merge of the vfs tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 1 May 2013 12:22:27 +1000

Hi Al,

After merging the vfs tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

net/sunrpc/auth_gss/svcauth_gss.c: In function 'write_gssp':
net/sunrpc/auth_gss/svcauth_gss.c:1329:9: error: implicit declaration of function 'PDE' [-Werror=implicit-function-declaration]
net/sunrpc/auth_gss/svcauth_gss.c:1329:53: error: invalid type argument of '->' (have 'int')
net/sunrpc/auth_gss/svcauth_gss.c: In function 'read_gssp':
net/sunrpc/auth_gss/svcauth_gss.c:1357:53: error: invalid type argument of '->' (have 'int')

Caused by commit 030d794bf498 ("SUNRPC: Use gssproxy upcall for server
RPCGSS authentication") from the nfsd tree interacting with commit
c3f2cb25be4f ("proc: Make the PROC_I() and PDE() macros internal to
procfs") from the vfs tree.

I applied the following merge fix patch (there may be a better way).

From 62a0e3a08844eeeb6d85fb45d85c2f80d7de2797 Mon Sep 17 00:00:00 2001
From: Stephen Rothwell <[email-masked]>
Date: Wed, 1 May 2013 12:19:43 +1000
Subject: [PATCH] SUNRPC: update for PDE removal

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 net/sunrpc/auth_gss/svcauth_gss.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
index b70ac1c..89ef709 100644
--- a/net/sunrpc/auth_gss/svcauth_gss.c
+++ b/net/sunrpc/auth_gss/svcauth_gss.c
@@ -1326,7 +1326,7 @@ static int wait_for_gss_proxy(struct net *net)
 static ssize_t write_gssp(struct file *file, const char __user *buf,
 			 size_t count, loff_t *ppos)
 {
-	struct net *net = PDE(file->f_path.dentry->d_inode)->data;
+	struct net *net = PDE_DATA(file->f_path.dentry->d_inode);
 	char tbuf[20];
 	unsigned long i;
 	int res;
@@ -1354,7 +1354,7 @@ static ssize_t write_gssp(struct file *file, const char __user *buf,
 static ssize_t read_gssp(struct file *file, char __user *buf,
 			 size_t count, loff_t *ppos)
 {
-	struct net *net = PDE(file->f_path.dentry->d_inode)->data;
+	struct net *net = PDE_DATA(file->f_path.dentry->d_inode);
 	unsigned long p = *ppos;
 	char tbuf[10];
 	size_t len;
-- 
1.8.1

-- 
Cheers,
Stephen Rothwell                    [email-masked]