* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
[not found] <CA+55aFwkJdyEpyNY64aAQ5ChrPZ8Kvx9iRUwy1J6_SRaxoN=zA@mail.gmail.com>
@ 2011-08-10 19:23 ` Randy Dunlap
2011-08-11 0:35 ` Peng Tao
0 siblings, 1 reply; 16+ messages in thread
From: Randy Dunlap @ 2011-08-10 19:23 UTC (permalink / raw)
To: Linus Torvalds, Trond Myklebust, linux-raid
Cc: Linux Kernel Mailing List, linux-nfs
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 ***
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
2011-08-10 19:23 ` Linux 3.1-rc1 (nfs/pnfs and drivers/md) Randy Dunlap
@ 2011-08-11 0:35 ` Peng Tao
2011-08-11 0:58 ` Randy Dunlap
0 siblings, 1 reply; 16+ messages in thread
From: Peng Tao @ 2011-08-11 0:35 UTC (permalink / raw)
To: Randy Dunlap
Cc: Linus Torvalds, Trond Myklebust, linux-raid,
Linux Kernel Mailing List, linux-nfs
On Thu, Aug 11, 2011 at 3:23 AM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> 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
>
> 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 ***
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
2011-08-11 0:35 ` Peng Tao
@ 2011-08-11 0:58 ` Randy Dunlap
[not found] ` <20110810175829.a834d80f.rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
0 siblings, 1 reply; 16+ messages in thread
From: Randy Dunlap @ 2011-08-11 0:58 UTC (permalink / raw)
To: Peng Tao
Cc: Linus Torvalds, Trond Myklebust, linux-raid,
Linux Kernel Mailing List, linux-nfs
On Thu, 11 Aug 2011 08:35:50 +0800 Peng Tao wrote:
> On Thu, Aug 11, 2011 at 3:23 AM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> > 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 ***
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
[not found] ` <20110810175829.a834d80f.rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
@ 2011-08-11 1:10 ` Linus Torvalds
[not found] ` <CA+55aFzcSLrhkexEn=J7BN8F3P3Vy+EAjwgGwMQPdeoYoQG+Bw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 16+ messages in thread
From: Linus Torvalds @ 2011-08-11 1:10 UTC (permalink / raw)
To: Randy Dunlap
Cc: Peng Tao, Trond Myklebust, linux-raid-u79uwXL29TY76Z2rM5mHXA,
Linux Kernel Mailing List, linux-nfs-u79uwXL29TY76Z2rM5mHXA
On Wed, Aug 10, 2011 at 5:58 PM, Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org> wrote:
>
> 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 majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
[not found] ` <CA+55aFzcSLrhkexEn=J7BN8F3P3Vy+EAjwgGwMQPdeoYoQG+Bw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2011-08-11 3:26 ` tao.peng-mb1K0bWo544
2011-08-11 6:06 ` Christoph Hellwig
` (2 more replies)
0 siblings, 3 replies; 16+ messages in thread
From: tao.peng-mb1K0bWo544 @ 2011-08-11 3:26 UTC (permalink / raw)
To: torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
rdunlap-/UHa2rfvQTnk1uMJSBkQmQ
Cc: bergwolf-Re5JQEeQqe8AvxtiuMwx3w,
Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-nfs-u79uwXL29TY76Z2rM5mHXA
Hi, Randy and Linus
> -----Original Message-----
> From: linux-nfs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [mailto:linux-nfs-owner-fy+rA21nqHI@public.gmane.orgrnel.org]
> On Behalf Of Linus Torvalds
> Sent: Thursday, August 11, 2011 9:10 AM
> To: Randy Dunlap
> Cc: Peng Tao; Trond Myklebust; linux-raid-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; Linux Kernel Mailing List;
> linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
>
> On Wed, Aug 10, 2011 at 5:58 PM, Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org> wrote:
> >
> > 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 <bergwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
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.
Reported-by: Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
Signed-off-by: Peng Tao <peng_tao-mb1K0bWo544@public.gmane.org>
---
fs/nfs/Kconfig | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index be02077..0d30613 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -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)"
--
1.7.4.2
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
2011-08-11 3:26 ` tao.peng-mb1K0bWo544
@ 2011-08-11 6:06 ` Christoph Hellwig
[not found] ` <20110811060633.GA11654-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
[not found] ` <F19688880B763E40B28B2B462677FBF805BF0EAC8A-AYrsSIZi/B2B3McK65YKY9BPR1lH4CV8@public.gmane.org>
2011-08-11 15:41 ` Linux 3.1-rc1 (nfs/pnfs and drivers/md) Randy Dunlap
2 siblings, 1 reply; 16+ messages in thread
From: Christoph Hellwig @ 2011-08-11 6:06 UTC (permalink / raw)
To: tao.peng
Cc: torvalds, rdunlap, bergwolf, Trond.Myklebust, linux-raid,
linux-kernel, linux-nfs
Note that the object layout also effectively needs the block layer.
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
[not found] ` <20110811060633.GA11654-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
@ 2011-08-11 6:21 ` tao.peng-mb1K0bWo544
0 siblings, 0 replies; 16+ messages in thread
From: tao.peng-mb1K0bWo544 @ 2011-08-11 6:21 UTC (permalink / raw)
To: hch-wEGCiKHe2LqWVfeAwA7xHQ
Cc: torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
rdunlap-/UHa2rfvQTnk1uMJSBkQmQ, bergwolf-Re5JQEeQqe8AvxtiuMwx3w,
Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-nfs-u79uwXL29TY76Z2rM5mHXA
> -----Original Message-----
> From: Christoph Hellwig [mailto:hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org]
> Sent: Thursday, August 11, 2011 2:07 PM
> To: Peng, Tao
> Cc: torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org; rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org; bergwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org;
> Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org; linux-raid-u79uwXL29TY76Z2rM5mHXA@public.gmane.org;
> linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> 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 majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
[not found] ` <F19688880B763E40B28B2B462677FBF805BF0EAC8A-AYrsSIZi/B2B3McK65YKY9BPR1lH4CV8@public.gmane.org>
@ 2011-08-11 10:11 ` Benny Halevy
2011-08-11 18:44 ` Boaz Harrosh
0 siblings, 1 reply; 16+ messages in thread
From: Benny Halevy @ 2011-08-11 10:11 UTC (permalink / raw)
To: tao.peng-mb1K0bWo544
Cc: torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
rdunlap-/UHa2rfvQTnk1uMJSBkQmQ, bergwolf-Re5JQEeQqe8AvxtiuMwx3w,
Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-nfs-u79uwXL29TY76Z2rM5mHXA
On 2011-08-11 06:26, tao.peng-mb1K0bWo544@public.gmane.org wrote:
> Hi, Randy and Linus
>
>> -----Original Message-----
>> From: linux-nfs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [mailto:linux-nfs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org]
>> On Behalf Of Linus Torvalds
>> Sent: Thursday, August 11, 2011 9:10 AM
>> To: Randy Dunlap
>> Cc: Peng Tao; Trond Myklebust; linux-raid-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; Linux Kernel Mailing List;
>> linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
>>
>> On Wed, Aug 10, 2011 at 5:58 PM, Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org> wrote:
>>>
>>> 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.
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
>
>
> From 833b59c1d24b43a9a4d47f777abab2cd9d041c68 Mon Sep 17 00:00:00 2001
> From: Peng Tao <bergwolf-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> 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.
>
> Reported-by: Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
> Signed-off-by: Peng Tao <peng_tao-mb1K0bWo544@public.gmane.org>
> ---
> fs/nfs/Kconfig | 14 +++++++++-----
> 1 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index be02077..0d30613 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -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)"
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
2011-08-11 3:26 ` tao.peng-mb1K0bWo544
2011-08-11 6:06 ` Christoph Hellwig
[not found] ` <F19688880B763E40B28B2B462677FBF805BF0EAC8A-AYrsSIZi/B2B3McK65YKY9BPR1lH4CV8@public.gmane.org>
@ 2011-08-11 15:41 ` Randy Dunlap
2 siblings, 0 replies; 16+ messages in thread
From: Randy Dunlap @ 2011-08-11 15:41 UTC (permalink / raw)
To: tao.peng
Cc: torvalds, bergwolf, Trond.Myklebust, linux-raid, linux-kernel,
linux-nfs
On Wed, 10 Aug 2011 23:26:47 -0400 tao.peng@emc.com wrote:
> Hi, Randy and Linus
>
> > -----Original Message-----
> > From: linux-nfs-owner@vger.kernel.org [mailto:linux-nfs-owner@vger.kernel.org]
> > On Behalf Of Linus Torvalds
> > Sent: Thursday, August 11, 2011 9:10 AM
> > To: Randy Dunlap
> > Cc: Peng Tao; Trond Myklebust; linux-raid@vger.kernel.org; Linux Kernel Mailing List;
> > linux-nfs@vger.kernel.org
> > Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
> >
> > On Wed, Aug 10, 2011 at 5:58 PM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> > >
> > > 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.
Yes, that builds cleanly for me. Thanks.
Acked-by: Randy Dunlap <rdunlap@xenotime.net>
> From 833b59c1d24b43a9a4d47f777abab2cd9d041c68 Mon Sep 17 00:00:00 2001
> From: Peng Tao <bergwolf@gmail.com>
> 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.
>
> Reported-by: Randy Dunlap <rdunlap@xenotime.net>
> Signed-off-by: Peng Tao <peng_tao@emc.com>
> ---
> fs/nfs/Kconfig | 14 +++++++++-----
> 1 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index be02077..0d30613 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -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)"
> --
> 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 majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
2011-08-11 10:11 ` Benny Halevy
@ 2011-08-11 18:44 ` Boaz Harrosh
[not found] ` <4E4422FD.3060706-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
0 siblings, 1 reply; 16+ messages in thread
From: Boaz Harrosh @ 2011-08-11 18:44 UTC (permalink / raw)
To: Benny Halevy, Sorin Faibish, peter honeyman
Cc: tao.peng, torvalds, rdunlap, bergwolf, Trond.Myklebust,
linux-raid, linux-kernel, linux-nfs, Welch, Brent
On 08/11/2011 03:11 AM, Benny Halevy wrote:
> On 2011-08-11 06:26, tao.peng@emc.com 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
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH] pnfs: Automatically select blocks & objects layouts
[not found] ` <4E4422FD.3060706-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
@ 2011-08-11 21:10 ` Boaz Harrosh
2011-08-11 21:29 ` [PATCH v2] " Boaz Harrosh
[not found] ` <4E444552.9030105-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
0 siblings, 2 replies; 16+ messages in thread
From: Boaz Harrosh @ 2011-08-11 21:10 UTC (permalink / raw)
To: Benny Halevy, Sorin Faibish, peter honeyman
Cc: tao.peng-mb1K0bWo544, torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
rdunlap-/UHa2rfvQTnk1uMJSBkQmQ, bergwolf-Re5JQEeQqe8AvxtiuMwx3w,
Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-nfs-u79uwXL29TY76Z2rM5mHXA, Welch, Brent
What about the below? based on v3.1-rc1
----
From: Boaz Harrosh <bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
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.
Signed-off-by: Boaz Harrosh <bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
---
fs/nfs/Kconfig | 14 ++++----------
1 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index be02077..1b951cd 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -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"
--
1.7.6
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2] pnfs: Automatically select blocks & objects layouts
2011-08-11 21:10 ` [PATCH] pnfs: Automatically select blocks & objects layouts Boaz Harrosh
@ 2011-08-11 21:29 ` Boaz Harrosh
2011-08-11 21:43 ` Randy Dunlap
[not found] ` <4E444552.9030105-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
1 sibling, 1 reply; 16+ messages in thread
From: Boaz Harrosh @ 2011-08-11 21:29 UTC (permalink / raw)
To: Benny Halevy, Sorin Faibish, peter honeyman
Cc: tao.peng, torvalds, rdunlap, bergwolf, Trond.Myklebust,
linux-raid, linux-kernel, linux-nfs, Welch, Brent
Just like files-layout, blocks & objects layouts are part of the
NFS 4.1 protocol and should be automatically selected if NFS_4_1
is selected. The small problem is that these depend on other
Kernel support being present, while files only depends on NFS
itself.
This patch removes from the user choice the presence of objects
and blocks layout. But makes sure these are selected only if
the depended subsystems are present in the Kernel.
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
---
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"
--
1.7.6
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v2] pnfs: Automatically select blocks & objects layouts
2011-08-11 21:29 ` [PATCH v2] " Boaz Harrosh
@ 2011-08-11 21:43 ` Randy Dunlap
2011-08-11 21:53 ` Boaz Harrosh
0 siblings, 1 reply; 16+ messages in thread
From: Randy Dunlap @ 2011-08-11 21:43 UTC (permalink / raw)
To: Boaz Harrosh
Cc: Benny Halevy, Sorin Faibish, peter honeyman, tao.peng, torvalds,
bergwolf, Trond.Myklebust, linux-raid, linux-kernel, linux-nfs,
Welch, Brent
On Thu, 11 Aug 2011 14:29:25 -0700 Boaz Harrosh wrote:
>
> Just like files-layout, blocks & objects layouts are part of the
> NFS 4.1 protocol and should be automatically selected if NFS_4_1
> is selected. The small problem is that these depend on other
> Kernel support being present, while files only depends on NFS
> itself.
>
> This patch removes from the user choice the presence of objects
> and blocks layout. But makes sure these are selected only if
> the depended subsystems are present in the Kernel.
>
> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
v1 applied & built OK for me.
v2 didn't apply to linux-3.1-rc1 cleanly, but I think I got it right.
Maybe not. I got all of this from it:
warning: (NFS_V4_1) selects MD which has unmet direct dependencies (BLOCK)
CC [M] fs/nfs/blocklayout/blocklayout.o
CC [M] fs/nfs/blocklayout/extents.o
In file included from fs/nfs/blocklayout/blocklayout.h:35,
from fs/nfs/blocklayout/extents.c:33:
include/linux/device-mapper.h:49: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:49: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/device-mapper.h:51: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:63: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:66: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:83: warning: 'struct bvec_merge_data' declared inside parameter list
include/linux/device-mapper.h:95: warning: 'struct queue_limits' declared inside parameter list
include/linux/device-mapper.h:300: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:301: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:475: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:476: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:477: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:478: warning: 'struct request_queue' declared inside parameter list
In file included from fs/nfs/blocklayout/blocklayout.h:35,
from fs/nfs/blocklayout/blocklayout.c:40:
include/linux/device-mapper.h:49: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:49: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/device-mapper.h:51: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:63: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:66: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:83: warning: 'struct bvec_merge_data' declared inside parameter list
include/linux/device-mapper.h:95: warning: 'struct queue_limits' declared inside parameter list
include/linux/device-mapper.h:300: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:301: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:475: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:476: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:477: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:478: warning: 'struct request_queue' declared inside parameter list
fs/nfs/blocklayout/blocklayout.c: In function 'bl_submit_bio':
fs/nfs/blocklayout/blocklayout.c:132: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:133: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:133: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:136: error: implicit declaration of function 'submit_bio'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_alloc_init_bio':
fs/nfs/blocklayout/blocklayout.c:148: error: implicit declaration of function 'bio_alloc'
fs/nfs/blocklayout/blocklayout.c:148: warning: assignment makes pointer from integer without a cast
fs/nfs/blocklayout/blocklayout.c:152: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:153: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:154: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:155: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'bl_add_page_to_bio':
fs/nfs/blocklayout/blocklayout.c:171: error: implicit declaration of function 'bio_add_page'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_read':
fs/nfs/blocklayout/blocklayout.c:192: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:193: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:193: error: (Each undeclared identifier is reported only once
fs/nfs/blocklayout/blocklayout.c:193: error: for each function it appears in.)
fs/nfs/blocklayout/blocklayout.c:193: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:193: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:194: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:194: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:198: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:200: error: decrement of pointer to unknown structure
fs/nfs/blocklayout/blocklayout.c:200: error: arithmetic on pointer to an incomplete type
fs/nfs/blocklayout/blocklayout.c:200: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:201: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:204: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:210: error: implicit declaration of function 'bio_put'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_write_zero':
fs/nfs/blocklayout/blocklayout.c:355: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:356: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:356: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:356: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:357: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:357: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:361: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:363: error: decrement of pointer to unknown structure
fs/nfs/blocklayout/blocklayout.c:363: error: arithmetic on pointer to an incomplete type
fs/nfs/blocklayout/blocklayout.c:363: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:364: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:368: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_write':
fs/nfs/blocklayout/blocklayout.c:381: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:382: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:382: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:382: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'map_block':
fs/nfs/blocklayout/blocklayout.c:440: error: implicit declaration of function 'set_buffer_mapped'
fs/nfs/blocklayout/blocklayout.c:441: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:442: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:445: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:445: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'init_page_for_write':
fs/nfs/blocklayout/blocklayout.c:469: error: implicit declaration of function 'alloc_page_buffers'
fs/nfs/blocklayout/blocklayout.c:469: warning: assignment makes pointer from integer without a cast
fs/nfs/blocklayout/blocklayout.c:477: error: implicit declaration of function 'bh_uptodate_or_lock'
fs/nfs/blocklayout/blocklayout.c:478: error: implicit declaration of function 'bh_submit_read'
fs/nfs/blocklayout/blocklayout.c:486: error: implicit declaration of function 'free_buffer_head'
make[4]: *** [fs/nfs/blocklayout/blocklayout.o] Error 1
and more errors in drivers/md/
> ---
> fs/nfs/Kconfig | 18 ++++--------------
> 1 files changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index 0d30613..dbcd821 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -89,24 +89,14 @@ config PNFS_FILE_LAYOUT
> tristate
>
> config PNFS_BLOCK
> - tristate "Provide support for the pNFS Block Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
> + tristate
> depends on NFS_FS && NFS_V4_1 && BLK_DEV_DM
> - help
> - Say M here if you want your pNFS client to support the Block Layout Driver
> - (RFC 5663). Requires Multiple devices driver support (DM) and Device mapper
> - support (BLK_DEV_DM).
> -
> - If unsure, say N.
> + default m
>
> config PNFS_OBJLAYOUT
> - tristate "Provide support for the pNFS Objects Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
> + tristate
> depends on NFS_FS && NFS_V4_1 && SCSI_OSD_ULD
> - help
> - Say M here if you want your pNFS client to support the Objects Layout Driver.
> - Requires the SCSI osd initiator library (SCSI_OSD_INITIATOR) and
> - upper level driver (SCSI_OSD_ULD).
> -
> - If unsure, say N.
> + default m
>
> config ROOT_NFS
> bool "Root file system on NFS"
> --
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] pnfs: Automatically select blocks & objects layouts
2011-08-11 21:43 ` Randy Dunlap
@ 2011-08-11 21:53 ` Boaz Harrosh
0 siblings, 0 replies; 16+ messages in thread
From: Boaz Harrosh @ 2011-08-11 21:53 UTC (permalink / raw)
To: Randy Dunlap
Cc: Benny Halevy, Sorin Faibish, peter honeyman, tao.peng, torvalds,
bergwolf, Trond.Myklebust, linux-raid, linux-kernel, linux-nfs,
Welch, Brent
On 08/11/2011 02:43 PM, Randy Dunlap wrote:
> On Thu, 11 Aug 2011 14:29:25 -0700 Boaz Harrosh wrote:
>
>>
>> Just like files-layout, blocks & objects layouts are part of the
>> NFS 4.1 protocol and should be automatically selected if NFS_4_1
>> is selected. The small problem is that these depend on other
>> Kernel support being present, while files only depends on NFS
>> itself.
>>
>> This patch removes from the user choice the presence of objects
>> and blocks layout. But makes sure these are selected only if
>> the depended subsystems are present in the Kernel.
>>
>> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
>
> v1 applied & built OK for me.
Sorry about the mixup, my bad
v1 is the one you need for linux-3.1-rc1.
> 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
> 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 ***
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] pnfs: Automatically select blocks & objects layouts
[not found] ` <4E444552.9030105-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
@ 2011-08-11 22:13 ` Jim Rees
[not found] ` <20110811221305.GA8608-8f4Pc2RrbJmHXe+LvDLADg@public.gmane.org>
0 siblings, 1 reply; 16+ messages in thread
From: Jim Rees @ 2011-08-11 22:13 UTC (permalink / raw)
To: Boaz Harrosh
Cc: Benny Halevy, Sorin Faibish, peter honeyman, tao.peng-mb1K0bWo544,
torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
rdunlap-/UHa2rfvQTnk1uMJSBkQmQ, bergwolf-Re5JQEeQqe8AvxtiuMwx3w,
Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-nfs-u79uwXL29TY76Z2rM5mHXA, Welch, Brent
Boaz Harrosh wrote:
What about the below? based on v3.1-rc1
----
From: Boaz Harrosh <bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
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.
Signed-off-by: Boaz Harrosh <bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
Acked-by: Jim Rees <rees-63aXycvo3TyHXe+LvDLADg@public.gmane.org>
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 majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] pnfs: Automatically select blocks & objects layouts
[not found] ` <20110811221305.GA8608-8f4Pc2RrbJmHXe+LvDLADg@public.gmane.org>
@ 2011-08-11 23:47 ` Peng Tao
0 siblings, 0 replies; 16+ messages in thread
From: Peng Tao @ 2011-08-11 23:47 UTC (permalink / raw)
To: Jim Rees, Boaz Harrosh
Cc: Benny Halevy, Sorin Faibish, peter honeyman, tao.peng-mb1K0bWo544,
torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
rdunlap-/UHa2rfvQTnk1uMJSBkQmQ,
Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA,
linux-raid-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-nfs-u79uwXL29TY76Z2rM5mHXA, Welch, Brent
On Fri, Aug 12, 2011 at 6:13 AM, Jim Rees <rees-63aXycvo3TyHXe+LvDLADg@public.gmane.org> wrote:
> Boaz Harrosh wrote:
>
> What about the below? based on v3.1-rc1
>
> ----
> From: Boaz Harrosh <bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
> 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.
>
> Signed-off-by: Boaz Harrosh <bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
>
> Acked-by: Jim Rees <rees-63aXycvo3TyHXe+LvDLADg@public.gmane.org>
>
> 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.
Acked-by: Peng Tao <peng_tao-mb1K0bWo544@public.gmane.org>
--
Thanks,
-Bergwolf
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2011-08-11 23:47 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CA+55aFwkJdyEpyNY64aAQ5ChrPZ8Kvx9iRUwy1J6_SRaxoN=zA@mail.gmail.com>
2011-08-10 19:23 ` Linux 3.1-rc1 (nfs/pnfs and drivers/md) Randy Dunlap
2011-08-11 0:35 ` Peng Tao
2011-08-11 0:58 ` Randy Dunlap
[not found] ` <20110810175829.a834d80f.rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
2011-08-11 1:10 ` Linus Torvalds
[not found] ` <CA+55aFzcSLrhkexEn=J7BN8F3P3Vy+EAjwgGwMQPdeoYoQG+Bw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-08-11 3:26 ` tao.peng-mb1K0bWo544
2011-08-11 6:06 ` Christoph Hellwig
[not found] ` <20110811060633.GA11654-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2011-08-11 6:21 ` tao.peng-mb1K0bWo544
[not found] ` <F19688880B763E40B28B2B462677FBF805BF0EAC8A-AYrsSIZi/B2B3McK65YKY9BPR1lH4CV8@public.gmane.org>
2011-08-11 10:11 ` Benny Halevy
2011-08-11 18:44 ` Boaz Harrosh
[not found] ` <4E4422FD.3060706-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2011-08-11 21:10 ` [PATCH] pnfs: Automatically select blocks & objects layouts Boaz Harrosh
2011-08-11 21:29 ` [PATCH v2] " Boaz Harrosh
2011-08-11 21:43 ` Randy Dunlap
2011-08-11 21:53 ` Boaz Harrosh
[not found] ` <4E444552.9030105-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2011-08-11 22:13 ` [PATCH] " Jim Rees
[not found] ` <20110811221305.GA8608-8f4Pc2RrbJmHXe+LvDLADg@public.gmane.org>
2011-08-11 23:47 ` Peng Tao
2011-08-11 15:41 ` Linux 3.1-rc1 (nfs/pnfs and drivers/md) Randy Dunlap
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).