[PATCH 4/10] UML - allow ubd devices to provide partial end blocks

From: Jeff Dike
Date: Sun Jan 16 2005 - 22:40:05 EST


If the file backing a ubd device is not an even blocklength, then the last
partial block is now readable, and it is padded with zeros.

Signed-off-by: Jeff Dike <jdike@xxxxxxxxxxx>

Index: 2.6.10/arch/um/drivers/ubd_kern.c
===================================================================
--- 2.6.10.orig/arch/um/drivers/ubd_kern.c 2005-01-16 20:37:24.000000000 -0500
+++ 2.6.10/arch/um/drivers/ubd_kern.c 2005-01-16 20:40:41.000000000 -0500
@@ -682,6 +682,8 @@
return 0;
}

+#define ROUND_BLOCK(n) ((n + ((1 << 9) - 1)) & (-1 << 9))
+
static int ubd_add(int n)
{
struct ubd *dev = &ubd_dev[n];
@@ -697,6 +699,8 @@
if(err < 0)
return(err);

+ dev->size = ROUND_BLOCK(dev->size);
+
err = ubd_new_disk(MAJOR_NR, dev->size, n, &ubd_gendisk[n]);
if(err)
return(err);

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