On Mar 4, 2012, at 6:33 PM, Myklebust, Trond wrote: > On Sat, 2012-03-03 at 09:09 -0500, Bryan Schumaker wrote: >> Hi Dros, >> >> On 02/17/2012 03:20 PM, Weston Andros Adamson wrote: >> >>> Shows the implementation ids in /proc/self/mountstats. This doesn't break >>> the nfs-utils mountstats tool. >>> >>> Signed-off-by: Weston Andros Adamson <dros@xxxxxxxxxx> >>> --- >>> fs/nfs/client.c | 1 + >>> fs/nfs/nfs4proc.c | 21 +++++++++++++++++++++ >>> fs/nfs/nfs4xdr.c | 42 +++++++++++++++++++++++++++++++++++++----- >>> fs/nfs/super.c | 8 ++++++++ >>> include/linux/nfs_fs_sb.h | 2 ++ >>> include/linux/nfs_xdr.h | 15 +++++++-------- >>> 6 files changed, 76 insertions(+), 13 deletions(-) >>> >> >> <snip> >> >>> diff --git a/fs/nfs/super.c b/fs/nfs/super.c >>> index d05024a..5462225 100644 >>> --- a/fs/nfs/super.c >>> +++ b/fs/nfs/super.c >>> @@ -809,6 +809,14 @@ static int nfs_show_stats(struct seq_file *m, struct dentry *root) >>> >>> seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ); >>> >>> + if (nfss->nfs_client && nfss->nfs_client->impl_id) { >>> + struct nfs41_impl_id *impl_id = nfss->nfs_client->impl_id; >> >> >> "struct nfs41_impl_id" is only defined when CONFIG_NFS_V4_1 is enabled, so if I compile without NFS 4.1 enabled I get this error: >> >> CC [M] fs/nfs/super.o >> /home/bjschuma/linux/modules/fs/nfs/super.c: In function 'nfs_show_stats': >> /home/bjschuma/linux/modules/fs/nfs/super.c:843:14: error: dereferencing pointer to incomplete type >> /home/bjschuma/linux/modules/fs/nfs/super.c:843:29: error: dereferencing pointer to incomplete type >> /home/bjschuma/linux/modules/fs/nfs/super.c:844:14: error: dereferencing pointer to incomplete type >> /home/bjschuma/linux/modules/fs/nfs/super.c:844:37: error: dereferencing pointer to incomplete type >> make[3]: *** [fs/nfs/super.o] Error 1 Oops! Good catch Bryan! > > Hi Bryan & Dros > > I've applied the following patch to fix this issue. Please advise if > you're still seeing compile problems when it is applied. > > 8<---------------------------------------------------------------------------- > From d032769b833d8fbaaa620a54300979dd5881d493 Mon Sep 17 00:00:00 2001 > From: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> > Date: Sun, 4 Mar 2012 18:12:57 -0500 > Subject: [PATCH] NFS: Fix a compile issue when !CONFIG_NFS_V4_1 > > The attempt to display the implementation ID needs to be conditional on > whether or not CONFIG_NFS_V4_1 is defined > > Reported-by: Bryan Schumaker <Bryan.Schumaker@xxxxxxxxxx> > Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> > --- > fs/nfs/super.c | 22 +++++++++++++++------- > 1 files changed, 15 insertions(+), 7 deletions(-) > > diff --git a/fs/nfs/super.c b/fs/nfs/super.c > index 3935a37..61419c9 100644 > --- a/fs/nfs/super.c > +++ b/fs/nfs/super.c > @@ -785,8 +785,22 @@ static void show_pnfs(struct seq_file *m, struct nfs_server *server) > else > seq_printf(m, "not configured"); > } > + > +static void show_implementation_id(struct seq_file *m, struct nfs_server *nfss) > +{ > + if (nfss->nfs_client && nfss->nfs_client->impl_id) { > + struct nfs41_impl_id *impl_id = nfss->nfs_client->impl_id; > + seq_printf(m, "\n\timpl_id:\tname='%s',domain='%s'," > + "date='%llu,%u'", > + impl_id->name, impl_id->domain, > + impl_id->date.seconds, impl_id->date.nseconds); > + } > +} > #else > static void show_pnfs(struct seq_file *m, struct nfs_server *server) {} > +static void show_implementation_id(struct seq_file *m, struct nfs_server *nfss) > +{ > +} > #endif > #endif > > @@ -836,13 +850,7 @@ static int nfs_show_stats(struct seq_file *m, struct dentry *root) > > seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ); > > - if (nfss->nfs_client && nfss->nfs_client->impl_id) { > - struct nfs41_impl_id *impl_id = nfss->nfs_client->impl_id; > - seq_printf(m, "\n\timpl_id:\tname='%s',domain='%s'," > - "date='%llu,%u'", > - impl_id->name, impl_id->domain, > - impl_id->date.seconds, impl_id->date.nseconds); > - } > + show_implementation_id(m, nfss); > > seq_printf(m, "\n\tcaps:\t"); > seq_printf(m, "caps=0x%x", nfss->caps); > -- > 1.7.7.6 Works for me. I need to test with different CONFIG opts more often! -dros
Attachment:
smime.p7s
Description: S/MIME cryptographic signature