From: Randy Dunlap <rdunlap@xenotime.net>
To: Boaz Harrosh <bharrosh@panasas.com>
Cc: Benny Halevy <bhalevy@tonian.com>,
Sorin Faibish <sfaibish@emc.com>,
peter honeyman <honey@citi.umich.edu>,
tao.peng@emc.com, torvalds@linux-foundation.org,
bergwolf@gmail.com, Trond.Myklebust@netapp.com,
linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-nfs@vger.kernel.org, "Welch, Brent" <welch@panasas.com>
Subject: Re: [PATCH v2] pnfs: Automatically select blocks & objects layouts
Date: Thu, 11 Aug 2011 14:43:54 -0700 [thread overview]
Message-ID: <20110811144354.c47a5c26.rdunlap@xenotime.net> (raw)
In-Reply-To: <4E4449B5.3050309@panasas.com>
On Thu, 11 Aug 2011 14:29:25 -0700 Boaz Harrosh wrote:
>
> Just like files-layout, blocks & objects layouts are part of the
> NFS 4.1 protocol and should be automatically selected if NFS_4_1
> is selected. The small problem is that these depend on other
> Kernel support being present, while files only depends on NFS
> itself.
>
> This patch removes from the user choice the presence of objects
> and blocks layout. But makes sure these are selected only if
> the depended subsystems are present in the Kernel.
>
> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
v1 applied & built OK for me.
v2 didn't apply to linux-3.1-rc1 cleanly, but I think I got it right.
Maybe not. I got all of this from it:
warning: (NFS_V4_1) selects MD which has unmet direct dependencies (BLOCK)
CC [M] fs/nfs/blocklayout/blocklayout.o
CC [M] fs/nfs/blocklayout/extents.o
In file included from fs/nfs/blocklayout/blocklayout.h:35,
from fs/nfs/blocklayout/extents.c:33:
include/linux/device-mapper.h:49: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:49: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/device-mapper.h:51: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:63: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:66: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:83: warning: 'struct bvec_merge_data' declared inside parameter list
include/linux/device-mapper.h:95: warning: 'struct queue_limits' declared inside parameter list
include/linux/device-mapper.h:300: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:301: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:475: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:476: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:477: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:478: warning: 'struct request_queue' declared inside parameter list
In file included from fs/nfs/blocklayout/blocklayout.h:35,
from fs/nfs/blocklayout/blocklayout.c:40:
include/linux/device-mapper.h:49: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:49: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/device-mapper.h:51: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:63: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:66: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:83: warning: 'struct bvec_merge_data' declared inside parameter list
include/linux/device-mapper.h:95: warning: 'struct queue_limits' declared inside parameter list
include/linux/device-mapper.h:300: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:301: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:475: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:476: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:477: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:478: warning: 'struct request_queue' declared inside parameter list
fs/nfs/blocklayout/blocklayout.c: In function 'bl_submit_bio':
fs/nfs/blocklayout/blocklayout.c:132: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:133: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:133: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:136: error: implicit declaration of function 'submit_bio'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_alloc_init_bio':
fs/nfs/blocklayout/blocklayout.c:148: error: implicit declaration of function 'bio_alloc'
fs/nfs/blocklayout/blocklayout.c:148: warning: assignment makes pointer from integer without a cast
fs/nfs/blocklayout/blocklayout.c:152: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:153: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:154: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:155: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'bl_add_page_to_bio':
fs/nfs/blocklayout/blocklayout.c:171: error: implicit declaration of function 'bio_add_page'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_read':
fs/nfs/blocklayout/blocklayout.c:192: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:193: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:193: error: (Each undeclared identifier is reported only once
fs/nfs/blocklayout/blocklayout.c:193: error: for each function it appears in.)
fs/nfs/blocklayout/blocklayout.c:193: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:193: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:194: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:194: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:198: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:200: error: decrement of pointer to unknown structure
fs/nfs/blocklayout/blocklayout.c:200: error: arithmetic on pointer to an incomplete type
fs/nfs/blocklayout/blocklayout.c:200: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:201: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:204: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:210: error: implicit declaration of function 'bio_put'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_write_zero':
fs/nfs/blocklayout/blocklayout.c:355: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:356: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:356: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:356: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:357: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:357: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:361: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:363: error: decrement of pointer to unknown structure
fs/nfs/blocklayout/blocklayout.c:363: error: arithmetic on pointer to an incomplete type
fs/nfs/blocklayout/blocklayout.c:363: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:364: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:368: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_write':
fs/nfs/blocklayout/blocklayout.c:381: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:382: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:382: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:382: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'map_block':
fs/nfs/blocklayout/blocklayout.c:440: error: implicit declaration of function 'set_buffer_mapped'
fs/nfs/blocklayout/blocklayout.c:441: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:442: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:445: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:445: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'init_page_for_write':
fs/nfs/blocklayout/blocklayout.c:469: error: implicit declaration of function 'alloc_page_buffers'
fs/nfs/blocklayout/blocklayout.c:469: warning: assignment makes pointer from integer without a cast
fs/nfs/blocklayout/blocklayout.c:477: error: implicit declaration of function 'bh_uptodate_or_lock'
fs/nfs/blocklayout/blocklayout.c:478: error: implicit declaration of function 'bh_submit_read'
fs/nfs/blocklayout/blocklayout.c:486: error: implicit declaration of function 'free_buffer_head'
make[4]: *** [fs/nfs/blocklayout/blocklayout.o] Error 1
and more errors in drivers/md/
> ---
> fs/nfs/Kconfig | 18 ++++--------------
> 1 files changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index 0d30613..dbcd821 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -89,24 +89,14 @@ config PNFS_FILE_LAYOUT
> tristate
>
> config PNFS_BLOCK
> - tristate "Provide support for the pNFS Block Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
> + tristate
> depends on NFS_FS && NFS_V4_1 && BLK_DEV_DM
> - help
> - Say M here if you want your pNFS client to support the Block Layout Driver
> - (RFC 5663). Requires Multiple devices driver support (DM) and Device mapper
> - support (BLK_DEV_DM).
> -
> - If unsure, say N.
> + default m
>
> config PNFS_OBJLAYOUT
> - tristate "Provide support for the pNFS Objects Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
> + tristate
> depends on NFS_FS && NFS_V4_1 && SCSI_OSD_ULD
> - help
> - Say M here if you want your pNFS client to support the Objects Layout Driver.
> - Requires the SCSI osd initiator library (SCSI_OSD_INITIATOR) and
> - upper level driver (SCSI_OSD_ULD).
> -
> - If unsure, say N.
> + default m
>
> config ROOT_NFS
> bool "Root file system on NFS"
> --
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
next prev parent reply other threads:[~2011-08-11 21:43 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CA+55aFwkJdyEpyNY64aAQ5ChrPZ8Kvx9iRUwy1J6_SRaxoN=zA@mail.gmail.com>
2011-08-10 19:23 ` Linux 3.1-rc1 (nfs/pnfs and drivers/md) Randy Dunlap
2011-08-11 0:35 ` Peng Tao
2011-08-11 0:58 ` Randy Dunlap
[not found] ` <20110810175829.a834d80f.rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
2011-08-11 1:10 ` Linus Torvalds
[not found] ` <CA+55aFzcSLrhkexEn=J7BN8F3P3Vy+EAjwgGwMQPdeoYoQG+Bw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-11 3:26 ` tao.peng-mb1K0bWo544
2011-08-11 6:06 ` Christoph Hellwig
[not found] ` <20110811060633.GA11654-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2011-08-11 6:21 ` tao.peng-mb1K0bWo544
[not found] ` <F19688880B763E40B28B2B462677FBF805BF0EAC8A-AYrsSIZi/B2B3McK65YKY9BPR1lH4CV8@public.gmane.org>
2011-08-11 10:11 ` Benny Halevy
2011-08-11 18:44 ` Boaz Harrosh
[not found] ` <4E4422FD.3060706-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2011-08-11 21:10 ` [PATCH] pnfs: Automatically select blocks & objects layouts Boaz Harrosh
2011-08-11 21:29 ` [PATCH v2] " Boaz Harrosh
2011-08-11 21:43 ` Randy Dunlap [this message]
2011-08-11 21:53 ` Boaz Harrosh
[not found] ` <4E444552.9030105-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2011-08-11 22:13 ` [PATCH] " Jim Rees
[not found] ` <20110811221305.GA8608-8f4Pc2RrbJmHXe+LvDLADg@public.gmane.org>
2011-08-11 23:47 ` Peng Tao
2011-08-11 15:41 ` Linux 3.1-rc1 (nfs/pnfs and drivers/md) Randy Dunlap
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=20110811144354.c47a5c26.rdunlap@xenotime.net \
--to=rdunlap@xenotime.net \
--cc=Trond.Myklebust@netapp.com \
--cc=bergwolf@gmail.com \
--cc=bhalevy@tonian.com \
--cc=bharrosh@panasas.com \
--cc=honey@citi.umich.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=sfaibish@emc.com \
--cc=tao.peng@emc.com \
--cc=torvalds@linux-foundation.org \
--cc=welch@panasas.com \
/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).