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@xxxxxxxxxxx> 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 *** -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html