Module Name:    src
Committed By:   jakllsch
Date:           Tue Feb 28 00:33:36 UTC 2017

Modified Files:
        src/sys/kern: subr_disk.c

Log Message:
pi_bsize must be at least pi_secsize

Allows block device accesses to 4KiB logical sector disks to function on the
vast majority of ports with 2KiB BLKDEV_IOSIZE.


To generate a diff of this commit:
cvs rdiff -u -r1.116 -r1.117 src/sys/kern/subr_disk.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/subr_disk.c
diff -u src/sys/kern/subr_disk.c:1.116 src/sys/kern/subr_disk.c:1.117
--- src/sys/kern/subr_disk.c:1.116	Wed Jan  6 00:22:30 2016
+++ src/sys/kern/subr_disk.c	Tue Feb 28 00:33:36 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_disk.c,v 1.116 2016/01/06 00:22:30 christos Exp $	*/
+/*	$NetBSD: subr_disk.c,v 1.117 2017/02/28 00:33:36 jakllsch Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1999, 2000, 2009 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_disk.c,v 1.116 2016/01/06 00:22:30 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_disk.c,v 1.117 2017/02/28 00:33:36 jakllsch Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -573,7 +573,7 @@ disk_ioctl(struct disk *dk, dev_t dev, u
 		pi = data;
 		memset(pi, 0, sizeof(*pi));
 		pi->pi_secsize = dk->dk_geom.dg_secsize;
-		pi->pi_bsize = BLKDEV_IOSIZE;
+		pi->pi_bsize = MAX(BLKDEV_IOSIZE, pi->pi_secsize);
 
 		if (DISKPART(dev) == RAW_PART) {
 			pi->pi_size = dk->dk_geom.dg_secperunit;

Reply via email to