[DRIVER SUBMISSION] DRBD wants to go mainline

From: Lars Ellenberg
Date: Sat Jul 21 2007 - 16:58:25 EST



DRBD wants to go mainline.
please have a look at the "for-linus" branch of
git://git.drbd.org/home/git/linux-drbd.git.

Longer story:

Hi there,

for lkml readers who don't know about DRBD yet:
DRBD is the distributed replicated block device,
a stacked block device driver as developed mainly
by Lars Ellenberg and Philipp Reisner
both employed at Linbit.

We implement shared-disk semantics in a shared-nothing cluster.

yes, we even support cluster file systems (OCFS2, GFS2)
[support for this is somewhat clumsy, still,
mainly userland/setup/convenience issues.
but that will improve.]

to actually use it you will need some userland tools
(drbdadm, drbdmeta, drbdsetup).

most unfortunate current limitations:
we support only 2 nodes directly;
but we are working on that, too :)

I'm going to give a presentation/BoF about it
at linux-conf.eu in September.

Currently we are at "stable version 8.0.y" (y == 4 right now,
8.0.5 to be released within a few days.

we have a project home page http://www.drbd.org
we have some mention on the linux-HA project http://www.linux-ha.org/DRBD
(both are slightly out-dated, unfortunately...)
our subversion repository (yeah, sorry, there has been no git back then)
is at http://svn.drbd.org/drbd/branches/drbd-8.0

and, we have a user base...
[drbd-user readers who are in a position to do so:
please help us get this into mainline! ]

Now, finally, we have a git repository of the kernel module part, too:
git://git.drbd.org/home/git/linux-drbd.git

it has two branches currently,
master, which tracks ...torvalds/linux-2.6.git, and
for-linus, which tracks the cleaned up patch meant for inclusin in
mainline.
so if interessted please do
git fetch git://git.drbd.org/home/git/linux-drbd.git +for-linus:drbd-8.0
to get a local branch named drbd-8.0 where you can inspect it.
see below for a diffstat of master..for-linus.

Jens, Andrew, anyone: please review,
and give me advice how to proceed from here.

technically, would you prefer
frequent rebase of the "for-linus" branch,
or rather merges back and forth?

Cheers,

Lars




The only not drbd specific files touched
are listed explicitly here:

=====================
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
index a4a3119..76f84bc 100644
--- a/drivers/block/Kconfig
+++ b/drivers/block/Kconfig
@@ -272,6 +272,8 @@ config BLK_DEV_CRYPTOLOOP
instead, which can be configured to be on-disk compatible with the
cryptoloop device.

+source "drivers/block/drbd/Kconfig"
+
config BLK_DEV_NBD
tristate "Network block device support"
depends on NET
diff --git a/drivers/block/Makefile b/drivers/block/Makefile
index 819c829..b27e16a 100644
--- a/drivers/block/Makefile
+++ b/drivers/block/Makefile
@@ -31,3 +31,4 @@ obj-$(CONFIG_BLK_DEV_UB) += ub.o

obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
obj-$(CONFIG_LGUEST_GUEST) += lguest_blk.o
+obj-$(CONFIG_BLK_DEV_DRBD) += drbd/
diff --git a/include/linux/major.h b/include/linux/major.h
index 0cb9805..2dbd7c1 100644
--- a/include/linux/major.h
+++ b/include/linux/major.h
@@ -145,6 +145,8 @@
#define UNIX98_PTY_MAJOR_COUNT 8
#define UNIX98_PTY_SLAVE_MAJOR (UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT)

+#define DRBD_MAJOR 147
+
#define RTF_MAJOR 150
#define RAW_MAJOR 162
=====================

(yes, block major 147 is assigned by LANANA,
as documented in Documentation/devices.txt already)

git-diff master..for-linus | diffstat
drivers/block/Kconfig | 2
drivers/block/Makefile | 1
drivers/block/drbd/Kconfig | 32
drivers/block/drbd/Makefile | 7
drivers/block/drbd/drbd_actlog.c | 1456 ++++++++++++++++
drivers/block/drbd/drbd_bitmap.c | 1184 +++++++++++++
drivers/block/drbd/drbd_buildtag.c | 6
drivers/block/drbd/drbd_int.h | 1894 ++++++++++++++++++++
drivers/block/drbd/drbd_main.c | 3249 +++++++++++++++++++++++++++++++++++
drivers/block/drbd/drbd_nl.c | 1847 ++++++++++++++++++++
drivers/block/drbd/drbd_proc.c | 267 ++
drivers/block/drbd/drbd_receiver.c | 3356 +++++++++++++++++++++++++++++++++++++
drivers/block/drbd/drbd_req.c | 1169 ++++++++++++
drivers/block/drbd/drbd_req.h | 320 +++
drivers/block/drbd/drbd_strings.c | 106 +
drivers/block/drbd/drbd_worker.c | 1046 +++++++++++
drivers/block/drbd/drbd_wrappers.h | 144 +
drivers/block/drbd/lru_cache.c | 370 ++++
drivers/block/drbd/lru_cache.h | 147 +
include/linux/drbd.h | 284 +++
include/linux/drbd_config.h | 55
include/linux/drbd_limits.h | 124 +
include/linux/drbd_nl.h | 105 +
include/linux/drbd_tag_magic.h | 78
include/linux/major.h | 2
25 files changed, 17251 insertions(+)



--
: Lars Ellenberg Tel +43-1-8178292-0 :
: LINBIT Information Technologies GmbH Fax +43-1-8178292-82 :
: Vivenotgasse 48, A-1120 Vienna/Europe http://www.linbit.com :
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/