All of lore.kernel.org
 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:24 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.