Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1438295 > unrolled thread

[PATCH] xen-blkfront: prefer xenbus_scanf() over xenbus_gather()

Started by"Jan Beulich" <JBeulich@suse.com>
First post2016-07-07 10:10 +0200
Last post2016-07-07 11:50 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] xen-blkfront: prefer xenbus_scanf() over  xenbus_gather() "Jan Beulich" <JBeulich@suse.com> - 2016-07-07 10:10 +0200
    Re: [PATCH] xen-blkfront: prefer xenbus_scanf() over xenbus_gather() Roger Pau Monne <roger.pau@citrix.com> - 2016-07-07 11:50 +0200

#1438295 — [PATCH] xen-blkfront: prefer xenbus_scanf() over xenbus_gather()

From"Jan Beulich" <JBeulich@suse.com>
Date2016-07-07 10:10 +0200
Subject[PATCH] xen-blkfront: prefer xenbus_scanf() over xenbus_gather()
Message-ID<rScxJ-4ic-71@gated-at.bofh.it>
... for single items being collected: It is more typesafe (as the
compiler can check format string and to-be-written-to variable match)
and requires one less parameter to be passed.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
 drivers/block/xen-blkfront.c |   43 +++++++++++++++++++------------------------
 1 file changed, 19 insertions(+), 24 deletions(-)

--- 4.7-rc6-prefer-xenbus_scanf.orig/drivers/block/xen-blkfront.c
+++ 4.7-rc6-prefer-xenbus_scanf/drivers/block/xen-blkfront.c
@@ -2208,10 +2208,9 @@ static void blkfront_setup_discard(struc
 		info->discard_granularity = discard_granularity;
 		info->discard_alignment = discard_alignment;
 	}
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-		    "discard-secure", "%d", &discard_secure,
-		    NULL);
-	if (!err)
+	err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
+			   "discard-secure", "%u", &discard_secure);
+	if (err > 0)
 		info->feature_secdiscard = !!discard_secure;
 }
 
@@ -2310,9 +2309,8 @@ static void blkfront_gather_backend_feat
 
 	info->feature_flush = 0;
 
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-			"feature-barrier", "%d", &barrier,
-			NULL);
+	err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
+			   "feature-barrier", "%d", &barrier);
 
 	/*
 	 * If there's no "feature-barrier" defined, then it means
@@ -2321,38 +2319,35 @@ static void blkfront_gather_backend_feat
 	 *
 	 * If there are barriers, then we use flush.
 	 */
-	if (!err && barrier)
+	if (err > 0 && barrier)
 		info->feature_flush = REQ_FLUSH | REQ_FUA;
 	/*
 	 * And if there is "feature-flush-cache" use that above
 	 * barriers.
 	 */
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-			"feature-flush-cache", "%d", &flush,
-			NULL);
+	err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
+			   "feature-flush-cache", "%d", &flush);
 
-	if (!err && flush)
+	if (err > 0 && flush)
 		info->feature_flush = REQ_FLUSH;
 
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-			"feature-discard", "%d", &discard,
-			NULL);
+	err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
+			   "feature-discard", "%d", &discard);
 
-	if (!err && discard)
+	if (err > 0 && discard)
 		blkfront_setup_discard(info);
 
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-			"feature-persistent", "%u", &persistent,
-			NULL);
-	if (err)
+	err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
+			   "feature-persistent", "%d", &persistent);
+	if (err <= 0)
 		info->feature_persistent = 0;
 	else
 		info->feature_persistent = persistent;
 
-	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
-			    "feature-max-indirect-segments", "%u", &indirect_segments,
-			    NULL);
-	if (err)
+	err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
+			   "feature-max-indirect-segments", "%u",
+			   &indirect_segments);
+	if (err <= 0)
 		info->max_indirect_segments = 0;
 	else
 		info->max_indirect_segments = min(indirect_segments,

[toc] | [next] | [standalone]


#1438466 — Re: [PATCH] xen-blkfront: prefer xenbus_scanf() over xenbus_gather()

FromRoger Pau Monne <roger.pau@citrix.com>
Date2016-07-07 11:50 +0200
SubjectRe: [PATCH] xen-blkfront: prefer xenbus_scanf() over xenbus_gather()
Message-ID<rSe6u-59g-21@gated-at.bofh.it>
In reply to#1438295
On Thu, Jul 07, 2016 at 02:05:46AM -0600, Jan Beulich wrote:
> ... for single items being collected: It is more typesafe (as the
> compiler can check format string and to-be-written-to variable match)
> and requires one less parameter to be passed.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
>  drivers/block/xen-blkfront.c |   43 +++++++++++++++++++------------------------
>  1 file changed, 19 insertions(+), 24 deletions(-)
> 
> --- 4.7-rc6-prefer-xenbus_scanf.orig/drivers/block/xen-blkfront.c
> +++ 4.7-rc6-prefer-xenbus_scanf/drivers/block/xen-blkfront.c
> @@ -2208,10 +2208,9 @@ static void blkfront_setup_discard(struc
>  		info->discard_granularity = discard_granularity;
>  		info->discard_alignment = discard_alignment;
>  	}
> -	err = xenbus_gather(XBT_NIL, info->xbdev->otherend,
> -		    "discard-secure", "%d", &discard_secure,
> -		    NULL);
> -	if (!err)
> +	err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
> +			   "discard-secure", "%u", &discard_secure);
> +	if (err > 0)

I would prefer an explicit err == 1 check (here and elsewhere), but I'm not 
going to block this patch because of that.

Roger.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web