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 <[EMAIL PROTECTED]>

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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to