Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757288Ab0HNOYs (ORCPT ); Sat, 14 Aug 2010 10:24:48 -0400 Received: from rcsinet10.oracle.com ([148.87.113.121]:19579 "EHLO rcsinet10.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756597Ab0HNOYq (ORCPT ); Sat, 14 Aug 2010 10:24:46 -0400 Message-ID: <4C66A6E2.80307@oracle.com> Date: Sat, 14 Aug 2010 07:23:30 -0700 From: Randy Dunlap Organization: Oracle Linux Engineering User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-3.fc11 Thunderbird/3.0 MIME-Version: 1.0 To: Sage Weil 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 References: <1281721240-26130-1-git-send-email-sage@newdream.net> <1281721240-26130-9-git-send-email-sage@newdream.net> <20100813194410.9c608b38.randy.dunlap@oracle.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4895 Lines: 140 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 >>> >>> 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 >>> Signed-off-by: Sage Weil >>> --- >>> 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 >>> +M: Sage Weil >>> +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 >>> 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 *** -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/