Skip to contentSkip to conversation

Linux 3.1-rc1

PATCH In review Linus Torvalds 13 participants 30 messages Aug 8, 2011 – Aug 11, 2011

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

It's been slightly over two weeks, but I decided that I wanted to do the release from home rather than from vacation, so you guys got a few extra days of merging. And some of you took advantage of it too. Tssk, tssk.

Anyway, 3.1 is shaping up to be a pretty normal release. Almost 75% of the patch is in drivers, 12% arch updates, and the rest miscellaneous:
fs, net, Documentation.

Of the drivers, about 40% is in staging, 20% networking, and 10% sound. With scsi, media, etc bringing up the rear. A good chunk of it was cleanups. And the good news is that the bulk of staging was removal. The bad news is that we sure made up for it in other areas ;)

Notable? It depends on what you look for. VM writeback work? You got it. And there was some controversy over the iscsi target code. There's networking changes, there's the rest of the generic ACL support moving into the VFS layer proper, simplifying the filesystem code that was often cut-and-paste duplicated boiler plate. And making us faster at doing it at the same time. And there are power management interface cleanups.

But there's nothing *huge* here. Looks like a fairly normal release, as I said. Unless I've forgotten something.

Go out and test it. Oh, except right now you are probably better off not enabling SLUB debugging unless you want to help test it.

Linus

#1 lore raw

Re: Linux 3.1-rc1 (i7core_edac build error)

on x86_64:

ERROR: "x86_mce_decoder_chain" [drivers/edac/i7core_edac.ko] undefined!

Full kernel (rand)config file is attached.

---
~Randy

maintainer
#2 lore raw

Re: Linux 3.1-rc1 (i7core_edac build error)

Quoted 5 lines · Randy Dunlap

on x86_64:

ERROR: "x86_mce_decoder_chain" [drivers/edac/i7core_edac.ko] undefined!

Full kernel (rand)config file is attached.

This has got to be linux-next because the x86_mce_decoder_chain for i7core_edac is not upstream yet, AFAICT.

If so, then

http://git.kernel.org/?p=linux/kernel/git/mchehab/edac.git;a=commitdiff;h=cd90cc84c6bf0f40a681900c609c044336a1b12e

needs to be changed to depend on X86_MCE. Mauro, you want an updated patch or you don't rebase your linux-next branch and need a diff ontop?

Thanks.

Signature · 2 lines
Regards/Gruss,
    Boris.
#3 lore raw

Re: Linux 3.1-rc1 (i7core_edac build error)

Quoted 9 lines · On Mon, 8 Aug 2011 23:31:59 +0200 Borislav Petkov wrote:
Quoted 5 lines · Randy Dunlap

on x86_64:

ERROR: "x86_mce_decoder_chain" [drivers/edac/i7core_edac.ko] undefined!

Full kernel (rand)config file is attached.

This has got to be linux-next because the x86_mce_decoder_chain for i7core_edac is not upstream yet, AFAICT.

Agreed. Too many simultaneous build trees. Sorry about that.

Quoted 12 lines

If so, then

http://git.kernel.org/?p=linux/kernel/git/mchehab/edac.git;a=commitdiff;h=cd90cc84c6bf0f40a681900c609c044336a1b12e

needs to be changed to depend on X86_MCE. Mauro, you want an updated patch or you don't rebase your linux-next branch and need a diff ontop?

Thanks.

Signature · 2 lines
Regards/Gruss,
    Boris.

Thanks.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

#4 lore raw

Re: Linux 3.1-rc1 (i7core_edac build error)

In reply to Borislav Petkov

Em 08-08-2011 18:31, Borislav Petkov escreveu:

Quoted 10 lines · Randy Dunlap
Quoted 5 lines

on x86_64:

ERROR: "x86_mce_decoder_chain" [drivers/edac/i7core_edac.ko] undefined!

Full kernel (rand)config file is attached.

This has got to be linux-next because the x86_mce_decoder_chain for i7core_edac is not upstream yet, AFAICT.

Quoted 6 lines

If so, then

http://git.kernel.org/?p=linux/kernel/git/mchehab/edac.git;a=commitdiff;h=cd90cc84c6bf0f40a681900c609c044336a1b12e

needs to be changed to depend on X86_MCE. Mauro, you want an updated patch or you don't rebase your linux-next branch and need a diff ontop?

I don't think that anyone, except for -next, is cloning from my tree, and there are just a few new patches there, so I'm not caring a lot of not doing rebase on this tree, but incremantal patches is better.

Thanks,
Mauro

#5 lore raw

PATCH 1/1 EDAC: Correct Kconfig dependencies

From: Borislav Petkov <[email protected]>

Both AMD and Intel i7 EDAC drivers use MCE features and are thus dependent of this functionality present in the kernel. Express this in Kconfig so that randconfig builds don't break.

---
 drivers/edac/Kconfig |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
drivers/edac/Kconfig +2 -3
index f888fb5..d057d6c 100644
@@ -41,7 +41,7 @@ config EDAC_DEBUG
 
 config EDAC_DECODE_MCE
 	tristate "Decode MCEs in human-readable form (only on AMD for now)"
-	depends on CPU_SUP_AMD && X86_MCE
+	depends on CPU_SUP_AMD && X86_MCE_AMD
 	default y
 	---help---
 	  Enable this option if you want to decode Machine Check Exceptions
@@ -170,8 +170,7 @@ config EDAC_I5400
 
 config EDAC_I7CORE
 	tristate "Intel i7 Core (Nehalem) processors"
-	depends on EDAC_MM_EDAC && PCI && X86
-	select EDAC_MCE
+	depends on EDAC_MM_EDAC && PCI && X86 && X86_MCE_INTEL
 	help
 	  Support for error detection and correction the Intel
 	  i7 Core (Nehalem) Integrated Memory Controller that exists on
Signature · 1 line
1.7.4.rc2
Acked-by on v1 1/1
#6 lore raw

Re: [PATCH] EDAC: Correct Kconfig dependencies

Quoted 8 lines · On Wed, 10 Aug 2011 14:43:30 +0200 Borislav Petkov wrote:

From: Borislav Petkov <[email protected]>

Both AMD and Intel i7 EDAC drivers use MCE features and are thus dependent of this functionality present in the kernel. Express this in Kconfig so that randconfig builds don't break.

Thanks.

Quoted 30 lines
---
 drivers/edac/Kconfig |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
drivers/edac/Kconfig +2 -3
index f888fb5..d057d6c 100644
@@ -41,7 +41,7 @@ config EDAC_DEBUG
 
 config EDAC_DECODE_MCE
 	tristate "Decode MCEs in human-readable form (only on AMD for now)"
-	depends on CPU_SUP_AMD && X86_MCE
+	depends on CPU_SUP_AMD && X86_MCE_AMD
 	default y
 	---help---
 	  Enable this option if you want to decode Machine Check Exceptions
@@ -170,8 +170,7 @@ config EDAC_I5400
 
 config EDAC_I7CORE
 	tristate "Intel i7 Core (Nehalem) processors"
-	depends on EDAC_MM_EDAC && PCI && X86
-	select EDAC_MCE
+	depends on EDAC_MM_EDAC && PCI && X86 && X86_MCE_INTEL
 	help
 	  Support for error detection and correction the Intel
 	  i7 Core (Nehalem) Integrated Memory Controller that exists on
Signature · 1 line
1.7.4.rc2

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

#7 lore raw

Re: [PATCH] EDAC: Correct Kconfig dependencies

Quoted 4 lines · Randy Dunlap
Quoted 2 lines · On Wed, 10 Aug 2011 14:43:30 +0200 Borislav Petkov wrote:

From: Borislav Petkov <[email protected]>

Quoted 8 lines
Quoted 6 lines

Both AMD and Intel i7 EDAC drivers use MCE features and are thus dependent of this functionality present in the kernel. Express this in Kconfig so that randconfig builds don't break.

Mauro, can you apply this to your

git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/edac.git linux_next

Linus picked it up prematurely but it should go through your tree along with the rest of the changes.

Thanks.

Signature · 8 lines
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
GM: Alberto Bozzo
Reg: Dornach, Landkreis Muenchen
HRB Nr. 43632 WEEE Registernr: 129 19551
#8 lore raw

Re: Linux 3.1-rc1 (staging/comedi)

In reply to Linus Torvalds

on x86_64:

ERROR: "labpc_1200_is_unipolar" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_1200_ai_gain_bits" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "range_labpc_1200_ai" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_detach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_attach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!

Full kernel (rand)config is attached.

---
~Randy

#9 lore raw

Re: Linux 3.1-rc1 (staging/comedi)

Quoted 11 lines · On Mon, 8 Aug 2011 14:35:16 -0700 Randy Dunlap wrote:

on x86_64:

ERROR: "labpc_1200_is_unipolar" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_1200_ai_gain_bits" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "range_labpc_1200_ai" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_detach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_attach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!

Full kernel (rand)config is attached.

---

Sorry, this also is linux-next 20110808.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

#10 lore raw

Re: Linux 3.1-rc1 (staging/comedi)

In reply to Randy Dunlap
Quoted 9 lines · Randy Dunlap

on x86_64:

ERROR: "labpc_1200_is_unipolar" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_1200_ai_gain_bits" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "range_labpc_1200_ai" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_detach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_attach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!

Full kernel (rand)config is attached.

I don't see how this could happen, as you have:

CONFIG_COMEDI_NI_LABPC_CS=m
CONFIG_COMEDI_NI_LABPC=m

set. Those functions are all in drivers/staging/comedi/drivers/ni_labpc.ko, which should have also gotten built, right?

totally confused,

greg k-h

#11 lore raw

Re: Linux 3.1-rc1 (staging/comedi)

Quoted 13 lines · On Mon, 8 Aug 2011 14:51:53 -0700 Greg KH wrote:
Quoted 9 lines · Randy Dunlap

on x86_64:

ERROR: "labpc_1200_is_unipolar" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_1200_ai_gain_bits" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "range_labpc_1200_ai" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_detach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!
ERROR: "labpc_common_attach" [drivers/staging/comedi/drivers/ni_labpc_cs.ko] undefined!

Full kernel (rand)config is attached.

I don't see how this could happen, as you have:

Quoted 8 lines

CONFIG_COMEDI_NI_LABPC_CS=m
CONFIG_COMEDI_NI_LABPC=m

set. Those functions are all in drivers/staging/comedi/drivers/ni_labpc.ko, which should have also gotten built, right?

totally confused,

Ack. Misleading messages logged due to using -k on build. Sorry about that. There are some build errors (in linux-next). I'll send those in reply to today's linux-next announcement.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

#12 lore raw

PATCH 1/1 xen: xen-selfballoon.c needs more header files

In reply to Linus Torvalds

From: Randy Dunlap <[email protected]>

Fix build errors (found when CONFIG_SYSFS is not enabled):

drivers/xen/xen-selfballoon.c:446: warning: data definition has no type or storage class drivers/xen/xen-selfballoon.c:446: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL' drivers/xen/xen-selfballoon.c:446: warning: parameter names (without types) in function declaration drivers/xen/xen-selfballoon.c:485: error: expected declaration specifiers or '...' before string constant drivers/xen/xen-selfballoon.c:485: warning: data definition has no type or storage class drivers/xen/xen-selfballoon.c:485: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE' drivers/xen/xen-selfballoon.c:485: warning: function declaration isn't a prototype

---
 drivers/xen/xen-selfballoon.c |    1 +
 1 file changed, 1 insertion(+)

and will need <linux/export.h> when module.h is split up.

drivers/xen/xen-selfballoon.c +1 -0
@@ -70,6 +70,7 @@
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
+#include <linux/module.h>
 #include <linux/workqueue.h>
 #include <xen/balloon.h>
 #include <xen/tmem.h>
#13 lore raw

Re: [PATCH mainline] xen: xen-selfballoon.c needs more header files

Quoted 12 lines · Randy Dunlap

From: Randy Dunlap <[email protected]>

Fix build errors (found when CONFIG_SYSFS is not enabled):

drivers/xen/xen-selfballoon.c:446: warning: data definition has no type or storage class drivers/xen/xen-selfballoon.c:446: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL' drivers/xen/xen-selfballoon.c:446: warning: parameter names (without types) in function declaration drivers/xen/xen-selfballoon.c:485: error: expected declaration specifiers or '...' before string constant drivers/xen/xen-selfballoon.c:485: warning: data definition has no type or storage class drivers/xen/xen-selfballoon.c:485: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE' drivers/xen/xen-selfballoon.c:485: warning: function declaration isn't a prototype

Quoted 1 line

Ok, will stick it on my linux-next. Thanks!

Quoted 21 lines
---
 drivers/xen/xen-selfballoon.c |    1 +
 1 file changed, 1 insertion(+)

and will need <linux/export.h> when module.h is split up.

drivers/xen/xen-selfballoon.c +1 -1
@@ -70,6 +70,7 @@
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/mman.h>
+#include <linux/module.h>
 #include <linux/workqueue.h>
 #include <xen/balloon.h>
 #include <xen/tmem.h>
--

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#14 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

In reply to Linus Torvalds

When CONFIG_BLOCK is not enabled (x86_64):

warning: (NFS_V4_1) selects MD which has unmet direct dependencies (BLOCK)

and these build errors:

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: 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

In file included from include/linux/raid/pq.h:20,

                 from lib/raid6/algos.c:19:

include/linux/blkdev.h:1346: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1346: warning: its scope is only this definition or declaration, which is probably not what you want include/linux/blkdev.h:1350: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1355: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'blk_needs_flush_plug' In file included from lib/raid6/algos.c:19:
include/linux/raid/pq.h:27: error: 'PAGE_SIZE' undeclared here (not in a function) include/linux/raid/pq.h:74: error: expected declaration specifiers or '...' before 'size_t' include/linux/raid/pq.h:113: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfmul' include/linux/raid/pq.h:114: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfexp' include/linux/raid/pq.h:115: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfinv' include/linux/raid/pq.h:116: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfexi' include/linux/raid/pq.h:119: error: expected declaration specifiers or '...' before 'size_t' include/linux/raid/pq.h:121: error: expected declaration specifiers or '...' before 'size_t' include/linux/raid/pq.h:122: error: expected declaration specifiers or '...' before 'size_t' lib/raid6/algos.c: In function 'raid6_select_algo':
lib/raid6/algos.c:90: error: 'raid6_gfmul' undeclared (first use in this function) lib/raid6/algos.c:116: warning: passing argument 2 of '(*algo)->gen_syndrome' makes pointer from integer without a cast lib/raid6/algos.c:116: note: expected 'void **' but argument is of type 'long unsigned int' lib/raid6/algos.c:116: error: too many arguments to function '(*algo)->gen_syndrome'
lib/raid6/algos.c: At top level:
lib/raid6/algos.c:153: error: expected declaration specifiers or '...' before string constant lib/raid6/algos.c:153: warning: data definition has no type or storage class
lib/raid6/algos.c:153: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE' lib/raid6/algos.c:153: warning: function declaration isn't a prototype
lib/raid6/algos.c:154: error: expected declaration specifiers or '...' before string constant lib/raid6/algos.c:154: warning: data definition has no type or storage class
lib/raid6/algos.c:154: warning: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION' lib/raid6/algos.c:154: warning: function declaration isn't a prototype
CC [M] drivers/char/applicom.o
make[3]: *** [lib/raid6/algos.o] Error 1

In file included from drivers/md/linear.c:19:
include/linux/blkdev.h:1346: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1346: warning: its scope is only this definition or declaration, which is probably not what you want include/linux/blkdev.h:1350: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1355: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'blk_needs_flush_plug' In file included from drivers/md/linear.c:23:
drivers/md/md.h: In function 'md_sync_acct':
drivers/md/md.h:418: error: dereferencing pointer to incomplete type
drivers/md/md.h: In function 'mdname':
drivers/md/md.h:484: error: dereferencing pointer to incomplete type
CC [M] net/netfilter/xt_connbytes.o
In file included from drivers/md/linear.c:24:
drivers/md/linear.h: At top level:
drivers/md/linear.h:15: error: field 'rcu' has incomplete type
drivers/md/linear.c: In function 'which_dev':
drivers/md/linear.c:36: error: implicit declaration of function 'rcu_dereference' drivers/md/linear.c:36: warning: assignment makes pointer from integer without a cast drivers/md/linear.c: At top level:
drivers/md/linear.c:64: warning: 'struct bvec_merge_data' declared inside parameter list drivers/md/linear.c: In function 'linear_mergeable_bvec':
drivers/md/linear.c:66: error: dereferencing pointer to incomplete type
drivers/md/linear.c:68: error: dereferencing pointer to incomplete type
drivers/md/linear.c:69: error: dereferencing pointer to incomplete type
drivers/md/linear.c:69: error: implicit declaration of function 'get_start_sect' drivers/md/linear.c:69: error: dereferencing pointer to incomplete type
drivers/md/linear.c:71: error: implicit declaration of function 'rcu_read_lock'
drivers/md/linear.c:74: error: implicit declaration of function 'rcu_read_unlock' drivers/md/linear.c:82: error: dereferencing pointer to incomplete type
drivers/md/linear.c: In function 'linear_congested':
drivers/md/linear.c:100: warning: assignment makes pointer from integer without a cast drivers/md/linear.c:103: error: implicit declaration of function 'bdev_get_queue' drivers/md/linear.c:103: warning: initialization makes pointer from integer without a cast drivers/md/linear.c:104: error: implicit declaration of function 'bdi_congested' drivers/md/linear.c:104: error: dereferencing pointer to incomplete type
drivers/md/linear.c: In function 'linear_size':
drivers/md/linear.c:117: warning: assignment makes pointer from integer without a cast drivers/md/linear.c: In function 'linear_conf':
drivers/md/linear.c:158: error: implicit declaration of function 'disk_stack_limits' drivers/md/linear.c:164: error: dereferencing pointer to incomplete type
drivers/md/linear.c:165: error: implicit declaration of function 'blk_queue_max_segments' drivers/md/linear.c:166: error: implicit declaration of function 'blk_queue_segment_boundary' drivers/md/linear.c:167: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function) drivers/md/linear.c: In function 'linear_run':
drivers/md/linear.c:210: error: implicit declaration of function 'blk_queue_merge_bvec' drivers/md/linear.c:211: error: dereferencing pointer to incomplete type
drivers/md/linear.c:212: error: dereferencing pointer to incomplete type
drivers/md/linear.c: In function 'linear_add':
drivers/md/linear.c:238: warning: assignment makes pointer from integer without a cast drivers/md/linear.c:240: error: implicit declaration of function 'rcu_assign_pointer' drivers/md/linear.c:242: error: implicit declaration of function 'set_capacity' drivers/md/linear.c:243: error: implicit declaration of function 'revalidate_disk' drivers/md/linear.c:244: error: implicit declaration of function 'kfree_rcu'
drivers/md/linear.c:244: error: 'rcu' undeclared (first use in this function)
drivers/md/linear.c: In function 'linear_stop':
drivers/md/linear.c:259: error: implicit declaration of function 'rcu_barrier'
drivers/md/linear.c:260: error: implicit declaration of function 'blk_sync_queue'
drivers/md/linear.c: In function 'linear_make_request':
drivers/md/linear.c:272: error: dereferencing pointer to incomplete type
drivers/md/linear.c:272: error: 'REQ_FLUSH' undeclared (first use in this function) drivers/md/linear.c:278: error: dereferencing pointer to incomplete type
drivers/md/linear.c:282: error: dereferencing pointer to incomplete type
drivers/md/linear.c:282: error: dereferencing pointer to incomplete type
drivers/md/linear.c:284: error: 'BDEVNAME_SIZE' undeclared (first use in this function) drivers/md/linear.c:290: error: dereferencing pointer to incomplete type
drivers/md/linear.c:291: error: implicit declaration of function 'bdevname'
drivers/md/linear.c:293: warning: format '%s' expects type 'char *', but argument 4 has type 'int' drivers/md/linear.c:295: error: implicit declaration of function 'bio_io_error' drivers/md/linear.c:284: warning: unused variable 'b'
drivers/md/linear.c:298: error: dereferencing pointer to incomplete type
drivers/md/linear.c:298: error: dereferencing pointer to incomplete type
drivers/md/linear.c:308: error: implicit declaration of function 'bio_split'
drivers/md/linear.c:308: error: dereferencing pointer to incomplete type
drivers/md/linear.c:308: warning: assignment makes pointer from integer without a cast drivers/md/linear.c:310: error: dereferencing pointer to incomplete type
drivers/md/linear.c:311: error: implicit declaration of function 'generic_make_request' drivers/md/linear.c:311: error: dereferencing pointer to incomplete type
drivers/md/linear.c:312: error: dereferencing pointer to incomplete type
drivers/md/linear.c:313: error: dereferencing pointer to incomplete type
drivers/md/linear.c:314: error: implicit declaration of function 'bio_pair_release' drivers/md/linear.c:318: error: dereferencing pointer to incomplete type
drivers/md/linear.c:319: error: dereferencing pointer to incomplete type
drivers/md/linear.c:319: error: dereferencing pointer to incomplete type
drivers/md/linear.c: At top level:
drivers/md/linear.c:337: error: 'THIS_MODULE' undeclared here (not in a function) drivers/md/linear.c:359: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:359: warning: data definition has no type or storage class
drivers/md/linear.c:359: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE' drivers/md/linear.c:359: warning: function declaration isn't a prototype
drivers/md/linear.c:360: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:360: warning: data definition has no type or storage class
drivers/md/linear.c:360: warning: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION' drivers/md/linear.c:360: warning: function declaration isn't a prototype
drivers/md/linear.c:361: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:361: warning: data definition has no type or storage class
drivers/md/linear.c:361: warning: type defaults to 'int' in declaration of 'MODULE_ALIAS' drivers/md/linear.c:361: warning: function declaration isn't a prototype
drivers/md/linear.c:362: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:362: warning: data definition has no type or storage class
drivers/md/linear.c:362: warning: type defaults to 'int' in declaration of 'MODULE_ALIAS' drivers/md/linear.c:362: warning: function declaration isn't a prototype
drivers/md/linear.c:363: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:363: warning: data definition has no type or storage class
drivers/md/linear.c:363: warning: type defaults to 'int' in declaration of 'MODULE_ALIAS' drivers/md/linear.c:363: warning: function declaration isn't a prototype
make[3]: *** [drivers/md/linear.o] Error 1

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

#15 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 3 lines · Randy Dunlap

When CONFIG_BLOCK is not enabled (x86_64):

warning: (NFS_V4_1) selects MD which has unmet direct dependencies (BLOCK)

MD depends on BLOCK but when MD is selected, it will not select BLOCK. Selecting BLOCK at NFS_V4_1 can solve this but it's like resolving dependency from top down.

Is MD designed to not be selected from the first place? If not, can we change it to selecting BLOCK?

Thanks,
Tao

Quoted 203 lines

and these build errors:

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: 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

In file included from include/linux/raid/pq.h:20,
                from lib/raid6/algos.c:19:
include/linux/blkdev.h:1346: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1346: warning: its scope is only this definition or declaration, which is probably not what you want include/linux/blkdev.h:1350: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1355: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'blk_needs_flush_plug' In file included from lib/raid6/algos.c:19:
include/linux/raid/pq.h:27: error: 'PAGE_SIZE' undeclared here (not in a function) include/linux/raid/pq.h:74: error: expected declaration specifiers or '...' before 'size_t' include/linux/raid/pq.h:113: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfmul' include/linux/raid/pq.h:114: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfexp' include/linux/raid/pq.h:115: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfinv' include/linux/raid/pq.h:116: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'raid6_gfexi' include/linux/raid/pq.h:119: error: expected declaration specifiers or '...' before 'size_t' include/linux/raid/pq.h:121: error: expected declaration specifiers or '...' before 'size_t' include/linux/raid/pq.h:122: error: expected declaration specifiers or '...' before 'size_t' lib/raid6/algos.c: In function 'raid6_select_algo':
lib/raid6/algos.c:90: error: 'raid6_gfmul' undeclared (first use in this function) lib/raid6/algos.c:116: warning: passing argument 2 of '(*algo)->gen_syndrome' makes pointer from integer without a cast lib/raid6/algos.c:116: note: expected 'void **' but argument is of type 'long unsigned int' lib/raid6/algos.c:116: error: too many arguments to function '(*algo)->gen_syndrome'
lib/raid6/algos.c: At top level:
lib/raid6/algos.c:153: error: expected declaration specifiers or '...' before string constant lib/raid6/algos.c:153: warning: data definition has no type or storage class
lib/raid6/algos.c:153: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE' lib/raid6/algos.c:153: warning: function declaration isn't a prototype
lib/raid6/algos.c:154: error: expected declaration specifiers or '...' before string constant lib/raid6/algos.c:154: warning: data definition has no type or storage class
lib/raid6/algos.c:154: warning: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION' lib/raid6/algos.c:154: warning: function declaration isn't a prototype
 CC [M]  drivers/char/applicom.o
make[3]: *** [lib/raid6/algos.o] Error 1

In file included from drivers/md/linear.c:19:
include/linux/blkdev.h:1346: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1346: warning: its scope is only this definition or declaration, which is probably not what you want include/linux/blkdev.h:1350: warning: 'struct task_struct' declared inside parameter list include/linux/blkdev.h:1355: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'blk_needs_flush_plug' In file included from drivers/md/linear.c:23:
drivers/md/md.h: In function 'md_sync_acct':
drivers/md/md.h:418: error: dereferencing pointer to incomplete type
drivers/md/md.h: In function 'mdname':
drivers/md/md.h:484: error: dereferencing pointer to incomplete type
 CC [M]  net/netfilter/xt_connbytes.o
In file included from drivers/md/linear.c:24:
drivers/md/linear.h: At top level:
drivers/md/linear.h:15: error: field 'rcu' has incomplete type
drivers/md/linear.c: In function 'which_dev':
drivers/md/linear.c:36: error: implicit declaration of function 'rcu_dereference' drivers/md/linear.c:36: warning: assignment makes pointer from integer without a cast drivers/md/linear.c: At top level:
drivers/md/linear.c:64: warning: 'struct bvec_merge_data' declared inside parameter list drivers/md/linear.c: In function 'linear_mergeable_bvec':
drivers/md/linear.c:66: error: dereferencing pointer to incomplete type
drivers/md/linear.c:68: error: dereferencing pointer to incomplete type
drivers/md/linear.c:69: error: dereferencing pointer to incomplete type
drivers/md/linear.c:69: error: implicit declaration of function 'get_start_sect' drivers/md/linear.c:69: error: dereferencing pointer to incomplete type
drivers/md/linear.c:71: error: implicit declaration of function 'rcu_read_lock'
drivers/md/linear.c:74: error: implicit declaration of function 'rcu_read_unlock' drivers/md/linear.c:82: error: dereferencing pointer to incomplete type
drivers/md/linear.c: In function 'linear_congested':
drivers/md/linear.c:100: warning: assignment makes pointer from integer without a cast drivers/md/linear.c:103: error: implicit declaration of function 'bdev_get_queue' drivers/md/linear.c:103: warning: initialization makes pointer from integer without a cast drivers/md/linear.c:104: error: implicit declaration of function 'bdi_congested' drivers/md/linear.c:104: error: dereferencing pointer to incomplete type
drivers/md/linear.c: In function 'linear_size':
drivers/md/linear.c:117: warning: assignment makes pointer from integer without a cast drivers/md/linear.c: In function 'linear_conf':
drivers/md/linear.c:158: error: implicit declaration of function 'disk_stack_limits' drivers/md/linear.c:164: error: dereferencing pointer to incomplete type
drivers/md/linear.c:165: error: implicit declaration of function 'blk_queue_max_segments' drivers/md/linear.c:166: error: implicit declaration of function 'blk_queue_segment_boundary' drivers/md/linear.c:167: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function) drivers/md/linear.c: In function 'linear_run':
drivers/md/linear.c:210: error: implicit declaration of function 'blk_queue_merge_bvec' drivers/md/linear.c:211: error: dereferencing pointer to incomplete type
drivers/md/linear.c:212: error: dereferencing pointer to incomplete type
drivers/md/linear.c: In function 'linear_add':
drivers/md/linear.c:238: warning: assignment makes pointer from integer without a cast drivers/md/linear.c:240: error: implicit declaration of function 'rcu_assign_pointer' drivers/md/linear.c:242: error: implicit declaration of function 'set_capacity' drivers/md/linear.c:243: error: implicit declaration of function 'revalidate_disk' drivers/md/linear.c:244: error: implicit declaration of function 'kfree_rcu'
drivers/md/linear.c:244: error: 'rcu' undeclared (first use in this function)
drivers/md/linear.c: In function 'linear_stop':
drivers/md/linear.c:259: error: implicit declaration of function 'rcu_barrier'
drivers/md/linear.c:260: error: implicit declaration of function 'blk_sync_queue'
drivers/md/linear.c: In function 'linear_make_request':
drivers/md/linear.c:272: error: dereferencing pointer to incomplete type
drivers/md/linear.c:272: error: 'REQ_FLUSH' undeclared (first use in this function) drivers/md/linear.c:278: error: dereferencing pointer to incomplete type
drivers/md/linear.c:282: error: dereferencing pointer to incomplete type
drivers/md/linear.c:282: error: dereferencing pointer to incomplete type
drivers/md/linear.c:284: error: 'BDEVNAME_SIZE' undeclared (first use in this function) drivers/md/linear.c:290: error: dereferencing pointer to incomplete type
drivers/md/linear.c:291: error: implicit declaration of function 'bdevname'
drivers/md/linear.c:293: warning: format '%s' expects type 'char *', but argument 4 has type 'int' drivers/md/linear.c:295: error: implicit declaration of function 'bio_io_error' drivers/md/linear.c:284: warning: unused variable 'b'
drivers/md/linear.c:298: error: dereferencing pointer to incomplete type
drivers/md/linear.c:298: error: dereferencing pointer to incomplete type
drivers/md/linear.c:308: error: implicit declaration of function 'bio_split'
drivers/md/linear.c:308: error: dereferencing pointer to incomplete type
drivers/md/linear.c:308: warning: assignment makes pointer from integer without a cast drivers/md/linear.c:310: error: dereferencing pointer to incomplete type
drivers/md/linear.c:311: error: implicit declaration of function 'generic_make_request' drivers/md/linear.c:311: error: dereferencing pointer to incomplete type
drivers/md/linear.c:312: error: dereferencing pointer to incomplete type
drivers/md/linear.c:313: error: dereferencing pointer to incomplete type
drivers/md/linear.c:314: error: implicit declaration of function 'bio_pair_release' drivers/md/linear.c:318: error: dereferencing pointer to incomplete type
drivers/md/linear.c:319: error: dereferencing pointer to incomplete type
drivers/md/linear.c:319: error: dereferencing pointer to incomplete type
drivers/md/linear.c: At top level:
drivers/md/linear.c:337: error: 'THIS_MODULE' undeclared here (not in a function) drivers/md/linear.c:359: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:359: warning: data definition has no type or storage class
drivers/md/linear.c:359: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE' drivers/md/linear.c:359: warning: function declaration isn't a prototype
drivers/md/linear.c:360: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:360: warning: data definition has no type or storage class
drivers/md/linear.c:360: warning: type defaults to 'int' in declaration of 'MODULE_DESCRIPTION' drivers/md/linear.c:360: warning: function declaration isn't a prototype
drivers/md/linear.c:361: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:361: warning: data definition has no type or storage class
drivers/md/linear.c:361: warning: type defaults to 'int' in declaration of 'MODULE_ALIAS' drivers/md/linear.c:361: warning: function declaration isn't a prototype
drivers/md/linear.c:362: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:362: warning: data definition has no type or storage class
drivers/md/linear.c:362: warning: type defaults to 'int' in declaration of 'MODULE_ALIAS' drivers/md/linear.c:362: warning: function declaration isn't a prototype
drivers/md/linear.c:363: error: expected declaration specifiers or '...' before string constant drivers/md/linear.c:363: warning: data definition has no type or storage class
drivers/md/linear.c:363: warning: type defaults to 'int' in declaration of 'MODULE_ALIAS' drivers/md/linear.c:363: warning: function declaration isn't a prototype
make[3]: *** [drivers/md/linear.o] Error 1

Quoted 8 lines

---
~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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#16 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 11 lines · On Thu, 11 Aug 2011 08:35:50 +0800 Peng Tao wrote:
Quoted 3 lines · Randy Dunlap

When CONFIG_BLOCK is not enabled (x86_64):

warning: (NFS_V4_1) selects MD which has unmet direct dependencies (BLOCK)

MD depends on BLOCK but when MD is selected, it will not select BLOCK. Selecting BLOCK at NFS_V4_1 can solve this but it's like resolving dependency from top down.

Is MD designed to not be selected from the first place? If not, can we change it to selecting BLOCK?

Hopefully MD will not select BLOCK.

The blocklayout parts of NVS_V4_1 could depend on BLOCK. or all of NVS_V4_1 can depend on BLOCK.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

#17 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 3 lines · Randy Dunlap

The blocklayout parts of NVS_V4_1 could depend on BLOCK.  or all of NVS_V4_1 can depend on BLOCK.

Absolutely. Replace "could" by "should".

There's no way I'll take a patch to make NFS "select BLOCK". If the block layer isn't enabled, then NFS obviously shouldn't be doing any pnfs stuff.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#18 lore raw

RE: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Hi, Randy and Linus

Quoted 11 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Linus Torvalds
Sent: Thursday, August 11, 2011 9:10 AM
To: Randy Dunlap
Cc: Peng Tao; Trond Myklebust; [email protected]; Linux Kernel Mailing List; [email protected]
Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 1 line · Randy Dunlap
Quoted 8 lines
Quoted 2 lines

The blocklayout parts of NVS_V4_1 could depend on BLOCK.  or all of NVS_V4_1 can depend on BLOCK.

Absolutely. Replace "could" by "should".

There's no way I'll take a patch to make NFS "select BLOCK". If the block layer isn't enabled, then NFS obviously shouldn't be doing any pnfs stuff.

I see. How about the following patch? We used to do like following for PNFS_BLOCK but it was changed during code review.

From 833b59c1d24b43a9a4d47f777abab2cd9d041c68 Mon Sep 17 00:00:00 2001
From: Peng Tao <[email protected]>
Date: Wed, 10 Aug 2011 18:29:21 -0400
Subject: [PATCH] NFS41: make PNFS_BLOCK selectable

PNFS_BLOCK needs BLK_DEV_DM/MD, which is not a dependency for other pnfs layout drivers. Seperate it out so others can still build when BLK_DEV_DM/MD is not enabled.

Also change select to depends on to avoid build failures.

---
 fs/nfs/Kconfig |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
fs/nfs/Kconfig +9 -5
index be02077..0d30613 100644
@@ -79,12 +79,9 @@ config NFS_V4_1
 	depends on NFS_FS && NFS_V4 && EXPERIMENTAL
 	select SUNRPC_BACKCHANNEL
 	select PNFS_FILE_LAYOUT
-	select PNFS_BLOCK
-	select MD
-	select BLK_DEV_DM
 	help
 	  This option enables support for minor version 1 of the NFSv4 protocol
-	  (RFC 5661 and RFC 5663) in the kernel's NFS client.
+	  (RFC 5661) in the kernel's NFS client.
 
 	  If unsure, say N.
 
@@ -92,7 +89,14 @@ config PNFS_FILE_LAYOUT
 	tristate
 
 config PNFS_BLOCK
-	tristate
+	tristate "Provide support for the pNFS Block Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
+	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.
 
 config PNFS_OBJLAYOUT
 	tristate "Provide support for the pNFS Objects Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
Signature · 8 lines
1.7.4.2



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#19 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Note that the object layout also effectively needs the block layer.

#20 lore raw

RE: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 11 lines

-----Original Message-----
From: Christoph Hellwig [mailto:[email protected]]
Sent: Thursday, August 11, 2011 2:07 PM
To: Peng, Tao
Cc: torvalds-de/[email protected]; rdunlap-/[email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Note that the object layout also effectively needs the block layer.

That is taken care of by PNFS_OBJLAYOUT depending on SCSI_OSD_ULD.

The dependency chain for PNFS_OBJLAYOUT on BLOCK is:
PNFS_OBJLAYOUT-> SCSI_OSD_ULD -> SCSI_OSD_INITIATOR -> SCSI-> BLOCK

With the patch, if CONFIG_BLOCK is not set, pnfs file layout can still be built.

Thanks,
Tao

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#21 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

In reply to [email protected]
Quoted 16 lines · On 2011-08-11 06:26, [email protected] wrote:

Hi, Randy and Linus

Quoted 14 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Linus Torvalds
Sent: Thursday, August 11, 2011 9:10 AM
To: Randy Dunlap
Cc: Peng Tao; Trond Myklebust; [email protected]; Linux Kernel Mailing List; [email protected]
Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 3 lines · Randy Dunlap

The blocklayout parts of NVS_V4_1 could depend on BLOCK. or all of NVS_V4_1 can depend on BLOCK.

Quoted 6 lines
Quoted 5 lines

Absolutely. Replace "could" by "should".

There's no way I'll take a patch to make NFS "select BLOCK". If the block layer isn't enabled, then NFS obviously shouldn't be doing any pnfs stuff.

I see. How about the following patch? We used to do like following for PNFS_BLOCK but it was changed during code review.

My Ack, that's indeed closer to what I had queued in my tree originally and follows the approach we used for the objects layout driver.

Benny

Quoted 43 lines

From 833b59c1d24b43a9a4d47f777abab2cd9d041c68 Mon Sep 17 00:00:00 2001
From: Peng Tao <[email protected]>
Date: Wed, 10 Aug 2011 18:29:21 -0400
Subject: [PATCH] NFS41: make PNFS_BLOCK selectable

PNFS_BLOCK needs BLK_DEV_DM/MD, which is not a dependency for other pnfs layout drivers. Seperate it out so others can still build when BLK_DEV_DM/MD is not enabled.

Also change select to depends on to avoid build failures.

---
 fs/nfs/Kconfig |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
fs/nfs/Kconfig +2 -5
index be02077..0d30613 100644
@@ -79,12 +79,9 @@ config NFS_V4_1
 	depends on NFS_FS && NFS_V4 && EXPERIMENTAL
 	select SUNRPC_BACKCHANNEL
 	select PNFS_FILE_LAYOUT
-	select PNFS_BLOCK
-	select MD
-	select BLK_DEV_DM
 	help
 	  This option enables support for minor version 1 of the NFSv4 protocol
-	  (RFC 5661 and RFC 5663) in the kernel's NFS client.
+	  (RFC 5661) in the kernel's NFS client.
 
 	  If unsure, say N.
 
@@ -92,7 +89,14 @@ config PNFS_FILE_LAYOUT
 	tristate
 
 config PNFS_BLOCK
-	tristate
+	tristate "Provide support for the pNFS Block Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"

fs/nfs/Kconfig config PNFS_FILE_LAYOUT · line 102

Quoted 10 lines
fs/nfs/Kconfig +7 -0
+	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.
 
 config PNFS_OBJLAYOUT
 	tristate "Provide support for the pNFS Objects Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#22 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 7 lines · Benny Halevy

On 2011-08-11 06:26, [email protected] wrote:

My Ack, that's indeed closer to what I had queued in my tree originally and follows the approach we used for the objects layout driver.

Benny

Yes but this breaks "Sorin"'s conspiracy to sneak into readhat the block layout driver. Because it would be selected automatically if you set CONFIG_NFS41.

Because for some perverted reason readhat wants pNFS-Files in, with latest patches, but not the blocks or objects. I liked it that Blocks tried to state: "pNFS is with blocks as well". Even Trond agreed that it is logical this way.

You select CONFIG_NFS41 or not. objects and blocks are a part of that, mandated by the protocol.

(I don't know that it was "Sorin"'s Idea, I meant the block guys)

I wish we can go back to the auto selection but fix the dependency stuff. Surly it is possible.

Thanks
Boaz

#23 lore raw

PATCH 1/1 pnfs: Automatically select blocks & objects layouts

What about the below? based on v3.1-rc1

----
From: Boaz Harrosh <[email protected]>
Subject: [PATCH] pnfs: Automatically select blocks & objects layouts

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.

---
 fs/nfs/Kconfig |   14 ++++----------
 1 files changed, 4 insertions(+), 10 deletions(-)
fs/nfs/Kconfig +4 -10
index be02077..1b951cd 100644
@@ -79,9 +79,6 @@ config NFS_V4_1
 	depends on NFS_FS && NFS_V4 && EXPERIMENTAL
 	select SUNRPC_BACKCHANNEL
 	select PNFS_FILE_LAYOUT
-	select PNFS_BLOCK
-	select MD
-	select BLK_DEV_DM
 	help
 	  This option enables support for minor version 1 of the NFSv4 protocol
 	  (RFC 5661 and RFC 5663) in the kernel's NFS client.
@@ -93,16 +90,13 @@ config PNFS_FILE_LAYOUT
 
 config PNFS_BLOCK
 	tristate
+	depends on NFS_FS && NFS_V4_1 && MD && BLK_DEV_DM
+	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"
Signature · 7 lines
1.7.6


--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#24 lore raw

PATCH v2 1/1 pnfs: Automatically select blocks & objects layouts

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.

---
 fs/nfs/Kconfig |   18 ++++--------------
 1 files changed, 4 insertions(+), 14 deletions(-)
fs/nfs/Kconfig +4 -14
index 0d30613..dbcd821 100644
@@ -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"
Signature · 1 line
1.7.6
#25 lore raw

Re: [PATCH v2] pnfs: Automatically select blocks & objects layouts

Quoted 7 lines · 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.

Quoted 5 lines

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.

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/

Quoted 28 lines
---
 fs/nfs/Kconfig |   18 ++++--------------
 1 files changed, 4 insertions(+), 14 deletions(-)
fs/nfs/Kconfig +3 -8
index 0d30613..dbcd821 100644
@@ -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

fs/nfs/Kconfig config PNFS_FILE_LAYOUT · line 102

Quoted 10 lines
fs/nfs/Kconfig +1 -6
-	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 ***

#26 lore raw

Re: [PATCH v2] pnfs: Automatically select blocks & objects layouts

Quoted 9 lines · Randy Dunlap
Quoted 7 lines · 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.

Quoted 7 lines
Quoted 5 lines

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.

v1 applied & built OK for me.

Sorry about the mixup, my bad

v1 is the one you need for linux-3.1-rc1.

Quoted 1 line

v2 didn't apply to linux-3.1-rc1 cleanly, but I think I got it right.

v2 should apply cleanly ontop of linus/master as off:
1d229d5 Merge branch 'perf-urgent-for-linus'

Because of the other patch already submitted by Linus.

The result of the two patches should give you the same exact Kconfig file. Just applied on two different tips.

Again sorry!
Boaz

Quoted 143 lines

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/

Quoted 28 lines
---
 fs/nfs/Kconfig |   18 ++++--------------
 1 files changed, 4 insertions(+), 14 deletions(-)
fs/nfs/Kconfig +3 -8
index 0d30613..dbcd821 100644
@@ -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

fs/nfs/Kconfig config PNFS_FILE_LAYOUT · line 102

Quoted 10 lines
fs/nfs/Kconfig +1 -6
-	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 ***

Acked-by on v1 1/1
#27 lore raw

Re: [PATCH] pnfs: Automatically select blocks & objects layouts

In reply to Boaz Harrosh

Boaz Harrosh wrote:

What about the below? based on v3.1-rc1

----
From: Boaz Harrosh <[email protected]>
Subject: [PATCH] pnfs: Automatically select blocks & objects layouts

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.

I think this is what we want. There is no point allowing the user to pick and choose various layout drivers. If they have selected nfs4.1 they should get all the layout drivers their kernel will support, based on the dependencies.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

Acked-by
#28 lore raw

Re: [PATCH] pnfs: Automatically select blocks & objects layouts

Quoted 18 lines · Jim Rees

Boaz Harrosh wrote:

 What about the below? based on v3.1-rc1

 ----
 From: Boaz Harrosh <[email protected]>
 Subject: [PATCH] pnfs: Automatically select blocks & objects layouts

 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.

Quoted 9 lines

I think this is what we want.  There is no point allowing the user to pick and choose various layout drivers.  If they have selected nfs4.1 they should get all the layout drivers their kernel will support, based on the dependencies.

I agree automatically selecting is more reasonable.

Signature · 6 lines
Thanks,
-Bergwolf
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Acked-by
#29 lore raw

Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

In reply to [email protected]
Quoted 16 lines · On Wed, 10 Aug 2011 23:26:47 -0400 [email protected] wrote:

Hi, Randy and Linus

Quoted 14 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Linus Torvalds
Sent: Thursday, August 11, 2011 9:10 AM
To: Randy Dunlap
Cc: Peng Tao; Trond Myklebust; [email protected]; Linux Kernel Mailing List; [email protected]
Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)

Quoted 3 lines · Randy Dunlap

The blocklayout parts of NVS_V4_1 could depend on BLOCK.  or all of NVS_V4_1 can depend on BLOCK.

Quoted 6 lines
Quoted 5 lines

Absolutely. Replace "could" by "should".

There's no way I'll take a patch to make NFS "select BLOCK". If the block layer isn't enabled, then NFS obviously shouldn't be doing any pnfs stuff.

I see. How about the following patch? We used to do like following for PNFS_BLOCK but it was changed during code review.

Yes, that builds cleanly for me. Thanks.

Quoted 56 lines

From 833b59c1d24b43a9a4d47f777abab2cd9d041c68 Mon Sep 17 00:00:00 2001
From: Peng Tao <[email protected]>
Date: Wed, 10 Aug 2011 18:29:21 -0400
Subject: [PATCH] NFS41: make PNFS_BLOCK selectable

PNFS_BLOCK needs BLK_DEV_DM/MD, which is not a dependency for other pnfs layout drivers. Seperate it out so others can still build when BLK_DEV_DM/MD is not enabled.

Also change select to depends on to avoid build failures.

---
 fs/nfs/Kconfig |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
fs/nfs/Kconfig +9 -5
index be02077..0d30613 100644
@@ -79,12 +79,9 @@ config NFS_V4_1
 	depends on NFS_FS && NFS_V4 && EXPERIMENTAL
 	select SUNRPC_BACKCHANNEL
 	select PNFS_FILE_LAYOUT
-	select PNFS_BLOCK
-	select MD
-	select BLK_DEV_DM
 	help
 	  This option enables support for minor version 1 of the NFSv4 protocol
-	  (RFC 5661 and RFC 5663) in the kernel's NFS client.
+	  (RFC 5661) in the kernel's NFS client.
 
 	  If unsure, say N.
 
@@ -92,7 +89,14 @@ config PNFS_FILE_LAYOUT
 	tristate
 
 config PNFS_BLOCK
-	tristate
+	tristate "Provide support for the pNFS Block Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
+	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.
 
 config PNFS_OBJLAYOUT
 	tristate "Provide support for the pNFS Objects Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
Signature · 1 line
1.7.4.2

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code *** --
To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html