From: Benny Halevy <bhalevy@tonian.com>
To: Olga Kornievskaia <aglo@citi.umich.edu>
Cc: linux-nfs <linux-nfs@vger.kernel.org>
Subject: Re: pnfs nfsd compile problems
Date: Wed, 07 Dec 2011 16:05:37 +0200 [thread overview]
Message-ID: <4EDF72B1.2060509@tonian.com> (raw)
In-Reply-To: <CAN-5tyErML04W7N3YVYyK0qq8OR_Ae+d4MzNXYyAVTMad39bFw@mail.gmail.com>
On 2011-12-06 22:57, Olga Kornievskaia wrote:
> Latest pnfs-all-latest (commit
> 58deb32bd36e92f5f44ac6d5e5ab3c36732c4ebd) doesn't compile if
> CONFIG_PNFSD_BLOCK is not enabled.
>
> 1st compile error is in (and probably gcc version dependent):
> CC [M] fs/nfsd/nfsctl.o
> In file included from fs/nfsd/nfsctl.c:18:0:
> include/linux/nfsd/nfsd4_block.h: In function ‘pnfs_block_enabled’:
> include/linux/nfsd/nfsd4_block.h:104:46: error: parameter name omitted
> include/linux/nfsd/nfsd4_block.h:104:46: error: parameter name omitted
Sorry. The patch in reply to this message should fix that.
Benny
diff --git a/fs/nfsd/nfsd4_block.h b/fs/nfsd/nfsd4_block.h
index 9c2941f..4ce5755 100644
--- a/fs/nfsd/nfsd4_block.h
+++ b/fs/nfsd/nfsd4_block.h
@@ -100,7 +100,7 @@ int bl_layoutreturn(struct inode *,
#else
-static inline bool pnfs_block_enabled(struct inode *, int) { return false; }
+static inline bool pnfs_block_enabled(struct inode *i, int ex_flags) { return false; }
static inline void nfsd_bl_init(void) {}
#endif /* CONFIG_PNFSD_BLOCK */
> make[2]: *** [fs/nfsd/nfsctl.o] Error 1
>
> Something like this fixed that problem:
> diff --git a/include/linux/nfsd/nfsd4_block.h b/include/linux/nfsd/nfsd4_block.h
> index 9c2941f..7d620a0 100644
> --- a/include/linux/nfsd/nfsd4_block.h
> +++ b/include/linux/nfsd/nfsd4_block.h
> @@ -101,7 +101,7 @@ extern bl_comm_t *bl_comm_global; // Ugly...
>
> #else
>
> -static inline bool pnfs_block_enabled(struct inode *, int) { return false; }
> +static inline bool pnfs_block_enabled(struct inode *a, int b) { return false; }
> static inline void nfsd_bl_init(void) {}
>
> #endif /* CONFIG_PNFSD_BLOCK */
>
> However, next is
>
> CC [M] fs/nfsd/vfs.o
> fs/nfsd/vfs.c: In function ‘_nfsd_setattr’:
> fs/nfsd/vfs.c:389:5: error: implicit declaration of function
> ‘bl_layoutrecall’ [-Werror=implicit-function-declaration]
> cc1: some warnings being treated as errors
>
> make[2]: *** [fs/nfsd/vfs.o] Error 1
>
> Perhaps, bl_layoutrecall() should be defined regardless if
> CONFIG_PNFSD_BLOCK is defined?
>
> So a combined patch for both is:
> diff --git a/include/linux/nfsd/nfsd4_block.h b/include/linux/nfsd/nfsd4_block.h
> index 9c2941f..06a33ca 100644
> --- a/include/linux/nfsd/nfsd4_block.h
> +++ b/include/linux/nfsd/nfsd4_block.h
> @@ -101,7 +101,8 @@ extern bl_comm_t *bl_comm_global; // Ugly...
>
> #else
>
> -static inline bool pnfs_block_enabled(struct inode *, int) { return false; }
> +int bl_layoutrecall(struct inode *inode, int type, u64 offset, u64
> len, bool with_nfs4_state_lock);
> +static inline bool pnfs_block_enabled(struct inode *a, int b) { return false; }
> static inline void nfsd_bl_init(void) {}
>
> #endif /* CONFIG_PNFSD_BLOCK */
>
> Then, the next problem is
> CC [M] fs/nfsd/export.o
> fs/nfsd/export.c: In function ‘pnfsd_check_export’:
> fs/nfsd/export.c:387:30: error: ‘bl_export_ops’ undeclared (first use
> in this function)
> fs/nfsd/export.c:387:30: note: each undeclared identifier is reported
> only once for each function it appears in
> make[2]: *** [fs/nfsd/export.o] Error 1
>
> This structure is only defined if CONFIG_PNFSD_BLOCK defined...
>
> Something like this to fix?
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index 82c8194..62550dc 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -384,7 +384,9 @@ static int pnfsd_check_export(struct inode *inode, int *flag
> if (pnfs_block_enabled(inode, *flags)) {
> if (!inode->i_sb->s_pnfs_op) {
> dprintk("set pnfs block export structure\n");
> +#if defined(CONFIG_PNFSD_BLOCK)
> inode->i_sb->s_pnfs_op = &bl_export_ops;
> +#endif
> } else
> dprintk("pnfs block enabled, fs provided s_pnfs_op\n");
> dprintk("pnfs block enabled, sb=%p s_pnfs_op=%p\n",
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-12-07 14:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-06 20:57 pnfs nfsd compile problems Olga Kornievskaia
2011-12-07 14:05 ` Benny Halevy [this message]
2011-12-07 14:06 ` [PATCH] SQUASHME: pnfsd-block: fix compile error when PNFSD_BLOCK in not enabled Benny Halevy
2011-12-07 23:46 ` pnfs nfsd compile problems Olga Kornievskaia
2011-12-08 0:08 ` Olga Kornievskaia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EDF72B1.2060509@tonian.com \
--to=bhalevy@tonian.com \
--cc=aglo@citi.umich.edu \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).