Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Dec 2019 03:18:37 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r355437 - head/sys/geom
Message-ID:  <201912060318.xB63IbwI071586@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Fri Dec  6 03:18:37 2019
New Revision: 355437
URL: https://svnweb.freebsd.org/changeset/base/355437

Log:
  Make GEOM_DEV code slightly more compact.
  
  Should be no functional change.
  
  MFC after:	2 weeks

Modified:
  head/sys/geom/geom_dev.c

Modified: head/sys/geom/geom_dev.c
==============================================================================
--- head/sys/geom/geom_dev.c	Fri Dec  6 02:43:05 2019	(r355436)
+++ head/sys/geom/geom_dev.c	Fri Dec  6 03:18:37 2019	(r355437)
@@ -524,12 +524,12 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data
 	i = IOCPARM_LEN(cmd);
 	switch (cmd) {
 	case DIOCGSECTORSIZE:
-		*(u_int *)data = cp->provider->sectorsize;
+		*(u_int *)data = pp->sectorsize;
 		if (*(u_int *)data == 0)
 			error = ENOENT;
 		break;
 	case DIOCGMEDIASIZE:
-		*(off_t *)data = cp->provider->mediasize;
+		*(off_t *)data = pp->mediasize;
 		if (*(off_t *)data == 0)
 			error = ENOENT;
 		break;
@@ -626,15 +626,14 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data
 	case DIOCGDELETE:
 		offset = ((off_t *)data)[0];
 		length = ((off_t *)data)[1];
-		if ((offset % cp->provider->sectorsize) != 0 ||
-		    (length % cp->provider->sectorsize) != 0 || length <= 0) {
+		if ((offset % pp->sectorsize) != 0 ||
+		    (length % pp->sectorsize) != 0 || length <= 0) {
 			printf("%s: offset=%jd length=%jd\n", __func__, offset,
 			    length);
 			error = EINVAL;
 			break;
 		}
-		if ((cp->provider->mediasize > 0) &&
-		    (offset >= cp->provider->mediasize)) {
+		if ((pp->mediasize > 0) && (offset >= pp->mediasize)) {
 			/*
 			 * Catch out-of-bounds requests here. The problem is
 			 * that due to historical GEOM I/O implementation
@@ -649,14 +648,12 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data
 		}
 		while (length > 0) {
 			chunk = length;
-			if (g_dev_del_max_sectors != 0 && chunk >
-			    g_dev_del_max_sectors * cp->provider->sectorsize) {
-				chunk = g_dev_del_max_sectors *
-				    cp->provider->sectorsize;
-				if (cp->provider->stripesize > 0) {
+			if (g_dev_del_max_sectors != 0 &&
+			    chunk > g_dev_del_max_sectors * pp->sectorsize) {
+				chunk = g_dev_del_max_sectors * pp->sectorsize;
+				if (pp->stripesize > 0) {
 					odd = (offset + chunk +
-					    cp->provider->stripeoffset) %
-					    cp->provider->stripesize;
+					    pp->stripeoffset) % pp->stripesize;
 					if (chunk > odd)
 						chunk -= odd;
 				}
@@ -684,10 +681,10 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data
 		strlcpy(data, pp->name, i);
 		break;
 	case DIOCGSTRIPESIZE:
-		*(off_t *)data = cp->provider->stripesize;
+		*(off_t *)data = pp->stripesize;
 		break;
 	case DIOCGSTRIPEOFFSET:
-		*(off_t *)data = cp->provider->stripeoffset;
+		*(off_t *)data = pp->stripeoffset;
 		break;
 	case DIOCGPHYSPATH:
 		error = g_io_getattr("GEOM::physpath", cp, &i, data);
@@ -739,8 +736,8 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data
 		break;
 	}
 	default:
-		if (cp->provider->geom->ioctl != NULL) {
-			error = cp->provider->geom->ioctl(cp->provider, cmd, data, fflag, td);
+		if (pp->geom->ioctl != NULL) {
+			error = pp->geom->ioctl(pp, cmd, data, fflag, td);
 		} else {
 			error = ENOIOCTL;
 		}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201912060318.xB63IbwI071586>