linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Randy Dunlap <randy.dunlap@oracle.com>
To: Sage Weil <sage@newdream.net>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-scsi@vger.kernel.org, ceph-devel@vger.kernel.org,
	hch@lst.de, akpm@linux-foundation.org, yehuda@hq.newdream.net
Subject: Re: [PATCH 8/8] rbd: introduce rados block device (rbd), based on libceph
Date: Sat, 14 Aug 2010 07:23:30 -0700	[thread overview]
Message-ID: <4C66A6E2.80307@oracle.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1008132015480.2022@cobra.newdream.net>

On 08/13/10 20:29, Sage Weil wrote:
> On Fri, 13 Aug 2010, Randy Dunlap wrote:
>> On Fri, 13 Aug 2010 10:40:40 -0700 Sage Weil wrote:
>>
>>> From: Yehuda Sadeh <yehuda@hq.newdream.net>
>>>
>>> The rados block device (rbd), based on osdblk, creates a block device
>>> that is backed by objects stored in the Ceph distributed object storage
>>> cluster.  Each device consists of a single metadata object and data
>>> striped over many data objects.
>>>
>>> The rbd driver supports read-only snapshots.
>>>
>>> Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
>>> Signed-off-by: Sage Weil <sage@newdream.net>
>>> ---
>>>  MAINTAINERS               |    9 +
>>>  drivers/block/Kconfig     |   13 +
>>>  drivers/block/Makefile    |    1 +
>>>  drivers/block/rbd.c       | 1844 +++++++++++++++++++++++++++++++++++++++++++++
>>>  drivers/block/rbd_types.h |   73 ++
>>>  5 files changed, 1940 insertions(+), 0 deletions(-)
>>>  create mode 100644 drivers/block/rbd.c
>>>  create mode 100644 drivers/block/rbd_types.h
>>>
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index 5102922..cb34b1b 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -4694,6 +4694,15 @@ F:	fs/qnx4/
>>>  F:	include/linux/qnx4_fs.h
>>>  F:	include/linux/qnxtypes.h
>>>  
>>> +RADOS BLOCK DEVICE (RBD)
>>> +F:	include/linux/qnxtypes.h
>>> +M:	Yehuda Sadeh <yehuda@hq.newdream.net>
>>> +M:	Sage Weil <sage@newdream.net>
>>> +M:	ceph-devel@vger.kernel.org
>>> +S:	Supported
>>> +F:	drivers/block/rbd.c
>>> +F:	drivers/block/rbd_types.h
>>> +
>>>  RADEON FRAMEBUFFER DISPLAY DRIVER
>>>  M:	Benjamin Herrenschmidt <benh@kernel.crashing.org>
>>>  L:	linux-fbdev@vger.kernel.org
>>> diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
>>> index de27768..708104b 100644
>>> --- a/drivers/block/Kconfig
>>> +++ b/drivers/block/Kconfig
>>> @@ -488,4 +488,17 @@ config BLK_DEV_HD
>>>  
>>>  	  If unsure, say N.
>>>  
>>> +config BLK_DEV_RBD
>>> +	tristate "Rados block device (RBD)"
>>> +	select CEPH_LIB
>>> +	default n
>>> +	help
>>> +	  Say Y here if you want include the Rados block device, which stripes
>>> +	  a block device over objects stored in the Ceph distributed object
>>> +	  store.
>>> +
>>> +	  More information at http://ceph.newdream.net/.
>>> +
>>> +	  If unsure, say N.
>>> +
>>>  endif # BLK_DEV
>>
>> In linux-next of 20100813, I get:
>>
>> net/built-in.o: In function `read_partial_message_section':
>> messenger.c:(.text+0x6598b): undefined reference to `crc32c'
>> net/built-in.o: In function `read_partial_message_bio':
>> messenger.c:(.text+0x65a57): undefined reference to `crc32c'
>> net/built-in.o: In function `write_partial_msg_pages':
>> messenger.c:(.text+0x65e22): undefined reference to `crc32c'
>> net/built-in.o: In function `prepare_write_message':
>> messenger.c:(.text+0x66219): undefined reference to `crc32c'
>> messenger.c:(.text+0x66240): undefined reference to `crc32c'
>> net/built-in.o:messenger.c:(.text+0x66264): more undefined references to `crc32c' follow
>>
>> when CONFIG_INET is not enabled.  It looks like BLK_DEV_RBD needs to depend on
>> INET and possibly on BLOCK (I sent a patch for depends on BLOCK on 2010-aug-04
>> due to other build errors).
> 
> I see the problem: BLK_DEV_RBD and CEPH_FS both have 'select CEPH_LIB' and 
> CEPH_LIB depends on INET and selects LIBCRC32C, but kconfig doesn't 
> propagate those backward dependencies for you.  It looks like CEPH_FS and 
> BLK_DEV_RBD should then depend on/select CEPH_LIB _and_ its dependencies.  
> Patching that (and the BLOCK dependency) up now...
> 
> Unless there is a better way to do it?

Not currently, so that is what it needs.
Thanks.

> Thanks!
> sage
> 
> 
> diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
> index 708104b..4a6e1b7 100644
> --- a/drivers/block/Kconfig
> +++ b/drivers/block/Kconfig
> @@ -490,7 +490,10 @@ config BLK_DEV_HD
>  
>  config BLK_DEV_RBD
>  	tristate "Rados block device (RBD)"
> +	depends on INET && EXPERIMENTAL && BLOCK
>  	select CEPH_LIB
> +	select LIBCRC32C
> +	select CRYPTO_AES
>  	default n
>  	help
>  	  Say Y here if you want include the Rados block device, which stripes
> diff --git a/fs/ceph/Kconfig b/fs/ceph/Kconfig
> index 89f9718..73a7b31 100644
> --- a/fs/ceph/Kconfig
> +++ b/fs/ceph/Kconfig
> @@ -1,9 +1,9 @@
>  config CEPH_FS
>          tristate "Ceph distributed file system (EXPERIMENTAL)"
>  	depends on INET && EXPERIMENTAL
> +	select CEPH_LIB
>  	select LIBCRC32C
>  	select CRYPTO_AES
> -	select CEPH_LIB
>  	default n
>  	help
>  	  Choose Y or M here to include support for mounting the


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

  reply	other threads:[~2010-08-14 14:23 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-13 17:40 [PATCH 0/8] rados block device and ceph refactor Sage Weil
2010-08-13 17:40 ` [PATCH 1/8] ceph-rbd: lookup pool in osdmap by name Sage Weil
2010-08-13 17:40 ` [PATCH 2/8] ceph-rbd: refactor osdc requests creation functions Sage Weil
2010-08-13 17:40 ` [PATCH 3/8] ceph-rbd: messenger and osdc changes for rbd Sage Weil
2010-08-13 17:40 ` [PATCH 4/8] ceph-rbd: enable creation of clients that don't need mds Sage Weil
2010-08-13 17:40 ` [PATCH 5/8] ceph-rbd: refactor mount related functions, add helpers Sage Weil
2010-08-13 17:40 ` [PATCH 6/8] ceph-rbd: osdc support for osd call and rollback operations Sage Weil
2010-08-13 17:40 ` [PATCH 8/8] rbd: introduce rados block device (rbd), based on libceph Sage Weil
2010-08-14  2:44   ` Randy Dunlap
2010-08-14  3:29     ` Sage Weil
2010-08-14 14:23       ` Randy Dunlap [this message]
2010-08-13 22:37 ` [PATCH 0/8] rados block device and ceph refactor Randy Dunlap
2010-08-13 23:11   ` Sage Weil
2010-08-14  2:32     ` Randy Dunlap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C66A6E2.80307@oracle.com \
    --to=randy.dunlap@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=hch@lst.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=sage@newdream.net \
    --cc=yehuda@hq.newdream.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).