Index: linux-2.4/super.c
===================================================================
RCS file: /cvsroot/linux-udf/udf/linux-2.4/super.c,v
retrieving revision 1.26
diff -u -r1.26 super.c
--- linux-2.4/super.c	2001/04/20 19:05:35	1.26
+++ linux-2.4/super.c	2001/04/21 11:04:58
@@ -203,7 +203,7 @@
 	char *opt, *val;
 
 	uopt->novrs = 0;
-	uopt->blocksize = 0;
+	uopt->blocksize = 2048;
 	uopt->partition = 0xFFFF;
 	uopt->session = 0xFFFFFFFF;
 	uopt->lastblock = 0xFFFFFFFF;
@@ -345,11 +345,16 @@
 static  int
 udf_set_blocksize(struct super_block *sb, int bsize)
 {
-	/* Use specified block size if specified */
-	if (bsize)
-		sb->s_blocksize = bsize;
-	else
-		sb->s_blocksize = get_hardsect_size(sb->s_dev); 
+	int hard_size = get_hardsect_size(sb->s_dev);
+
+	/* we will have defaulted to 2048b blocksize, but the user can
+	 * override it with the -o bs=xx mount option. sanity check and
+	 * make sure that it is at least as big as the hardware sector
+	 * size */
+	if (bsize < hard_size)
+		bsize = hard_size;
+
+	sb->s_blocksize = bsize;
 
 	/* Block size must be an even multiple of 512 */
 	switch (sb->s_blocksize)
