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

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

am 11.08.2011 02:58:29 von rdunlap

On Thu, 11 Aug 2011 08:35:50 +0800 Peng Tao wrote:

> On Thu, Aug 11, 2011 at 3:23 AM, Randy Dunlap 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 ***
--
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

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

am 11.08.2011 03:10:14 von Linus Torvalds

On Wed, Aug 10, 2011 at 5:58 PM, Randy Dunlap wr=
ote:
>
> The blocklayout parts of NVS_V4_1 could depend on BLOCK. =A0or 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

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

am 11.08.2011 05:26:47 von tao.peng-mb1K0bWo544

Hi, Randy and Linus

> -----Original Message-----
> From: linux-nfs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [mailto:linux-nfs-owner-fy+rA21nqHI@public.gmane.org=
rnel.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 Kern=
el Mailing List;
> linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Subject: Re: Linux 3.1-rc1 (nfs/pnfs and drivers/md)
>=20
> On Wed, Aug 10, 2011 at 5:58 PM, Randy Dunlap =
wrote:
> >
> > The blocklayout parts of NVS_V4_1 could depend on BLOCK. =A0or all =
of NVS_V4_1
> > can depend on BLOCK.
>=20
> Absolutely. Replace "could" by "should".
>=20
> 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.


=46rom 833b59c1d24b43a9a4d47f777abab2cd9d041c68 Mon Sep 17 00:00:00 200=
1
=46rom: Peng Tao
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
Signed-off-by: Peng Tao
---
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 protoc=
ol
- (RFC 5661 and RFC 5663) in the kernel's NFS client.
+ (RFC 5661) in the kernel's NFS client.
=20
If unsure, say N.
=20
@@ -92,7 +89,14 @@ config PNFS_FILE_LAYOUT
tristate
=20
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 Devic=
e mapper
+ support (BLK_DEV_DM).
+
+ If unsure, say N.
=20
config PNFS_OBJLAYOUT
tristate "Provide support for the pNFS Objects Layout Driver for NFSv=
4.1 pNFS (EXPERIMENTAL)"
--=20
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

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

am 11.08.2011 08:06:33 von Christoph Hellwig

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

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

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

am 11.08.2011 08:21:17 von tao.peng-mb1K0bWo544

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

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

am 11.08.2011 12:11:29 von Benny Halevy

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 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
> 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
> Signed-off-by: Peng Tao
> ---
> 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

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

am 11.08.2011 20:44:13 von Boaz Harrosh

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

[PATCH] pnfs: Automatically select blocks & objects layouts

am 11.08.2011 23:10:42 von Boaz Harrosh

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

----
From: Boaz Harrosh
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
---
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

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

am 11.08.2011 23:29:25 von Boaz Harrosh

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

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

am 11.08.2011 23:43:54 von rdunlap

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

v1 applied & built OK for me.
v2 didn't apply to linux-3.1-rc1 cleanly, but I think I got it right.
Maybe not. I got all of this from it:

warning: (NFS_V4_1) selects MD which has unmet direct dependencies (BLOCK)
CC [M] fs/nfs/blocklayout/blocklayout.o
CC [M] fs/nfs/blocklayout/extents.o
In file included from fs/nfs/blocklayout/blocklayout.h:35,
from fs/nfs/blocklayout/extents.c:33:
include/linux/device-mapper.h:49: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:49: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/device-mapper.h:51: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:63: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:66: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:83: warning: 'struct bvec_merge_data' declared inside parameter list
include/linux/device-mapper.h:95: warning: 'struct queue_limits' declared inside parameter list
include/linux/device-mapper.h:300: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:301: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:475: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:476: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:477: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:478: warning: 'struct request_queue' declared inside parameter list
In file included from fs/nfs/blocklayout/blocklayout.h:35,
from fs/nfs/blocklayout/blocklayout.c:40:
include/linux/device-mapper.h:49: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:49: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/device-mapper.h:51: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:63: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:66: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:83: warning: 'struct bvec_merge_data' declared inside parameter list
include/linux/device-mapper.h:95: warning: 'struct queue_limits' declared inside parameter list
include/linux/device-mapper.h:300: warning: 'struct bio' declared inside parameter list
include/linux/device-mapper.h:301: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:475: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:476: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:477: warning: 'struct request' declared inside parameter list
include/linux/device-mapper.h:478: warning: 'struct request_queue' declared inside parameter list
fs/nfs/blocklayout/blocklayout.c: In function 'bl_submit_bio':
fs/nfs/blocklayout/blocklayout.c:132: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:133: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:133: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:136: error: implicit declaration of function 'submit_bio'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_alloc_init_bio':
fs/nfs/blocklayout/blocklayout.c:148: error: implicit declaration of function 'bio_alloc'
fs/nfs/blocklayout/blocklayout.c:148: warning: assignment makes pointer from integer without a cast
fs/nfs/blocklayout/blocklayout.c:152: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:153: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:154: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:155: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'bl_add_page_to_bio':
fs/nfs/blocklayout/blocklayout.c:171: error: implicit declaration of function 'bio_add_page'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_read':
fs/nfs/blocklayout/blocklayout.c:192: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:193: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:193: error: (Each undeclared identifier is reported only once
fs/nfs/blocklayout/blocklayout.c:193: error: for each function it appears in.)
fs/nfs/blocklayout/blocklayout.c:193: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:193: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:194: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:194: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:198: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:200: error: decrement of pointer to unknown structure
fs/nfs/blocklayout/blocklayout.c:200: error: arithmetic on pointer to an incomplete type
fs/nfs/blocklayout/blocklayout.c:200: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:201: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:204: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:210: error: implicit declaration of function 'bio_put'
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_write_zero':
fs/nfs/blocklayout/blocklayout.c:355: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:356: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:356: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:356: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:357: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:357: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:361: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:363: error: decrement of pointer to unknown structure
fs/nfs/blocklayout/blocklayout.c:363: error: arithmetic on pointer to an incomplete type
fs/nfs/blocklayout/blocklayout.c:363: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:364: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:368: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'bl_end_io_write':
fs/nfs/blocklayout/blocklayout.c:381: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:382: error: 'BIO_UPTODATE' undeclared (first use in this function)
fs/nfs/blocklayout/blocklayout.c:382: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:382: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'map_block':
fs/nfs/blocklayout/blocklayout.c:440: error: implicit declaration of function 'set_buffer_mapped'
fs/nfs/blocklayout/blocklayout.c:441: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:442: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:445: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c:445: error: dereferencing pointer to incomplete type
fs/nfs/blocklayout/blocklayout.c: In function 'init_page_for_write':
fs/nfs/blocklayout/blocklayout.c:469: error: implicit declaration of function 'alloc_page_buffers'
fs/nfs/blocklayout/blocklayout.c:469: warning: assignment makes pointer from integer without a cast
fs/nfs/blocklayout/blocklayout.c:477: error: implicit declaration of function 'bh_uptodate_or_lock'
fs/nfs/blocklayout/blocklayout.c:478: error: implicit declaration of function 'bh_submit_read'
fs/nfs/blocklayout/blocklayout.c:486: error: implicit declaration of function 'free_buffer_head'
make[4]: *** [fs/nfs/blocklayout/blocklayout.o] Error 1

and more errors in drivers/md/


> ---
> fs/nfs/Kconfig | 18 ++++--------------
> 1 files changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index 0d30613..dbcd821 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -89,24 +89,14 @@ config PNFS_FILE_LAYOUT
> tristate
>
> config PNFS_BLOCK
> - tristate "Provide support for the pNFS Block Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
> + tristate
> depends on NFS_FS && NFS_V4_1 && BLK_DEV_DM
> - help
> - Say M here if you want your pNFS client to support the Block Layout Driver
> - (RFC 5663). Requires Multiple devices driver support (DM) and Device mapper
> - support (BLK_DEV_DM).
> -
> - If unsure, say N.
> + default m
>
> config PNFS_OBJLAYOUT
> - tristate "Provide support for the pNFS Objects Layout Driver for NFSv4.1 pNFS (EXPERIMENTAL)"
> + tristate
> depends on NFS_FS && NFS_V4_1 && SCSI_OSD_ULD
> - help
> - Say M here if you want your pNFS client to support the Objects Layout Driver.
> - Requires the SCSI osd initiator library (SCSI_OSD_INITIATOR) and
> - upper level driver (SCSI_OSD_ULD).
> -
> - If unsure, say N.
> + default m
>
> config ROOT_NFS
> bool "Root file system on NFS"
> --


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

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

am 11.08.2011 23:53:09 von Boaz Harrosh

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

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

am 12.08.2011 00:13:05 von Jim Rees

Boaz Harrosh wrote:

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

----
From: Boaz Harrosh
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

Acked-by: Jim Rees

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

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

am 12.08.2011 01:47:20 von Peng Tao

On Fri, Aug 12, 2011 at 6:13 AM, Jim Rees wrote:
> Boaz Harrosh wrote:
>
>  What about the below? based on v3.1-rc1
>
>  ----
>  From: Boaz Harrosh
>  Subject: [PATCH] pnfs: Automatically select blocks & objects la=
youts
>
>  Just like files-layout, blocks & objects layouts are part of th=
e
>  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
>
> Acked-by: Jim Rees
>
> I think this is what we want.  There is no point allowing the us=
er 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


--=20
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