]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xen-blkfront: prefer xenbus_scanf() over xenbus_gather()
authorJan Beulich <JBeulich@suse.com>
Thu, 7 Jul 2016 08:05:46 +0000 (02:05 -0600)
committerBob Liu <bob.liu@oracle.com>
Thu, 20 Oct 2016 08:00:57 +0000 (04:00 -0400)
... 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.

Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
(cherry picked from commit ff595325ed556fb4b83af5b9ffd5c427c18405d7)
Signed-off-by: Bob Liu <bob.liu@oracle.com>
Orabug: 24820937

drivers/block/xen-blkfront.c

index 157c582552afa78d9b0c893dc940a3ba39085c85..0dc08d9f60efca9295a10f26afb05637e1d31fc7 100644 (file)
@@ -2246,10 +2246,9 @@ static void blkfront_setup_discard(struct blkfront_info *info)
                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;
 }
 
@@ -2348,9 +2347,8 @@ static void blkfront_gather_backend_features(struct blkfront_info *info)
 
        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
@@ -2359,38 +2357,35 @@ static void blkfront_gather_backend_features(struct blkfront_info *info)
         *
         * 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,