]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop some md patches and fix up the one remaining commit we needed.
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Oct 2022 14:11:32 +0000 (16:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Oct 2022 14:11:32 +0000 (16:11 +0200)
queue-5.10/md-add-support-for-req_nowait.patch [deleted file]
queue-5.10/md-raid1-rename-print_msg-with-r1bio_existed.patch [deleted file]
queue-5.10/md-raid5-add-__rcu-annotation-to-struct-disk_info.patch [deleted file]
queue-5.10/md-raid5-ensure-stripe_fill-happens-on-non-read-io-w.patch
queue-5.10/md-raid5-wait-for-md_sb_change_pending-in-raid5d.patch
queue-5.10/md-remove-most-calls-to-bdevname.patch [deleted file]
queue-5.10/md-replace-role-magic-numbers-with-defined-constants.patch [deleted file]
queue-5.10/md-replace-snprintf-with-scnprintf.patch
queue-5.10/rdma-cm-use-slid-in-the-work-completion-as-the-dlid-.patch
queue-5.10/series

diff --git a/queue-5.10/md-add-support-for-req_nowait.patch b/queue-5.10/md-add-support-for-req_nowait.patch
deleted file mode 100644 (file)
index 62dd91a..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From 929292d385fdaedbcf18f678274decba022cdac8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 21 Dec 2021 20:06:19 +0000
-Subject: md: add support for REQ_NOWAIT
-
-From: Vishal Verma <vverma@digitalocean.com>
-
-[ Upstream commit f51d46d0e7cb5b8494aa534d276a9d8915a2443d ]
-
-commit 021a24460dc2 ("block: add QUEUE_FLAG_NOWAIT") added support
-for checking whether a given bdev supports handling of REQ_NOWAIT or not.
-Since then commit 6abc49468eea ("dm: add support for REQ_NOWAIT and enable
-it for linear target") added support for REQ_NOWAIT for dm. This uses
-a similar approach to incorporate REQ_NOWAIT for md based bios.
-
-This patch was tested using t/io_uring tool within FIO. A nvme drive
-was partitioned into 2 partitions and a simple raid 0 configuration
-/dev/md0 was created.
-
-md0 : active raid0 nvme4n1p1[1] nvme4n1p2[0]
-      937423872 blocks super 1.2 512k chunks
-
-Before patch:
-
-$ ./t/io_uring /dev/md0 -p 0 -a 0 -d 1 -r 100
-
-Running top while the above runs:
-
-$ ps -eL | grep $(pidof io_uring)
-
-  38396   38396 pts/2    00:00:00 io_uring
-  38396   38397 pts/2    00:00:15 io_uring
-  38396   38398 pts/2    00:00:13 iou-wrk-38397
-
-We can see iou-wrk-38397 io worker thread created which gets created
-when io_uring sees that the underlying device (/dev/md0 in this case)
-doesn't support nowait.
-
-After patch:
-
-$ ./t/io_uring /dev/md0 -p 0 -a 0 -d 1 -r 100
-
-Running top while the above runs:
-
-$ ps -eL | grep $(pidof io_uring)
-
-  38341   38341 pts/2    00:10:22 io_uring
-  38341   38342 pts/2    00:10:37 io_uring
-
-After running this patch, we don't see any io worker thread
-being created which indicated that io_uring saw that the
-underlying device does support nowait. This is the exact behaviour
-noticed on a dm device which also supports nowait.
-
-For all the other raid personalities except raid0, we would need
-to train pieces which involves make_request fn in order for them
-to correctly handle REQ_NOWAIT.
-
-Reviewed-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Vishal Verma <vverma@digitalocean.com>
-Signed-off-by: Song Liu <song@kernel.org>
-Stable-dep-of: 1727fd5015d8 ("md: Replace snprintf with scnprintf")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/md.c | 21 +++++++++++++++++++++
- 1 file changed, 21 insertions(+)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 0043dec37a87..c5363d2310e9 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -434,6 +434,12 @@ void md_handle_request(struct mddev *mddev, struct bio *bio)
-       rcu_read_lock();
-       if (is_suspended(mddev, bio)) {
-               DEFINE_WAIT(__wait);
-+              /* Bail out if REQ_NOWAIT is set for the bio */
-+              if (bio->bi_opf & REQ_NOWAIT) {
-+                      rcu_read_unlock();
-+                      bio_wouldblock_error(bio);
-+                      return;
-+              }
-               for (;;) {
-                       prepare_to_wait(&mddev->sb_wait, &__wait,
-                                       TASK_UNINTERRUPTIBLE);
-@@ -5817,6 +5823,7 @@ int md_run(struct mddev *mddev)
-       int err;
-       struct md_rdev *rdev;
-       struct md_personality *pers;
-+      bool nowait = true;
-       if (list_empty(&mddev->disks))
-               /* cannot run an array with no devices.. */
-@@ -5889,8 +5896,13 @@ int md_run(struct mddev *mddev)
-                       }
-               }
-               sysfs_notify_dirent_safe(rdev->sysfs_state);
-+              nowait = nowait && blk_queue_nowait(bdev_get_queue(rdev->bdev));
-       }
-+      /* Set the NOWAIT flags if all underlying devices support it */
-+      if (nowait)
-+              blk_queue_flag_set(QUEUE_FLAG_NOWAIT, mddev->queue);
-+
-       if (!bioset_initialized(&mddev->bio_set)) {
-               err = bioset_init(&mddev->bio_set, BIO_POOL_SIZE, 0, BIOSET_NEED_BVECS);
-               if (err)
-@@ -7023,6 +7035,15 @@ static int hot_add_disk(struct mddev *mddev, dev_t dev)
-       set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
-       if (!mddev->thread)
-               md_update_sb(mddev, 1);
-+      /*
-+       * If the new disk does not support REQ_NOWAIT,
-+       * disable on the whole MD.
-+       */
-+      if (!blk_queue_nowait(bdev_get_queue(rdev->bdev))) {
-+              pr_info("%s: Disabling nowait because %s does not support nowait\n",
-+                      mdname(mddev), bdevname(rdev->bdev, b));
-+              blk_queue_flag_clear(QUEUE_FLAG_NOWAIT, mddev->queue);
-+      }
-       /*
-        * Kick recovery, maybe this spare has to be added to the
-        * array immediately.
--- 
-2.35.1
-
diff --git a/queue-5.10/md-raid1-rename-print_msg-with-r1bio_existed.patch b/queue-5.10/md-raid1-rename-print_msg-with-r1bio_existed.patch
deleted file mode 100644 (file)
index e389ae0..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From 6e1e82a8c27fbabd5ccde79138067a6be4a09373 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 25 May 2021 17:46:20 +0800
-Subject: md/raid1: rename print_msg with r1bio_existed
-
-From: Guoqing Jiang <jgq516@gmail.com>
-
-[ Upstream commit 9b8ae7b938235229ccb112c4e887ff1bcc232836 ]
-
-The caller of raid1_read_request could pass NULL or a valid pointer for
-"struct r1bio *r1_bio", so it actually means whether r1_bio is existed
-or not.
-
-Signed-off-by: Guoqing Jiang <jiangguoqing@kylinos.cn>
-Signed-off-by: Song Liu <song@kernel.org>
-Stable-dep-of: 1727fd5015d8 ("md: Replace snprintf with scnprintf")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/raid1.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index fb31e5dd54a6..b08f44c791fa 100644
---- a/drivers/md/raid1.c
-+++ b/drivers/md/raid1.c
-@@ -1208,7 +1208,7 @@ static void raid1_read_request(struct mddev *mddev, struct bio *bio,
-       const unsigned long do_sync = (bio->bi_opf & REQ_SYNC);
-       int max_sectors;
-       int rdisk;
--      bool print_msg = !!r1_bio;
-+      bool r1bio_existed = !!r1_bio;
-       char b[BDEVNAME_SIZE];
-       /*
-@@ -1218,7 +1218,7 @@ static void raid1_read_request(struct mddev *mddev, struct bio *bio,
-        */
-       gfp_t gfp = r1_bio ? (GFP_NOIO | __GFP_HIGH) : GFP_NOIO;
--      if (print_msg) {
-+      if (r1bio_existed) {
-               /* Need to get the block device name carefully */
-               struct md_rdev *rdev;
-               rcu_read_lock();
-@@ -1250,7 +1250,7 @@ static void raid1_read_request(struct mddev *mddev, struct bio *bio,
-       if (rdisk < 0) {
-               /* couldn't find anywhere to read from */
--              if (print_msg) {
-+              if (r1bio_existed) {
-                       pr_crit_ratelimited("md/raid1:%s: %s: unrecoverable I/O read error for block %llu\n",
-                                           mdname(mddev),
-                                           b,
-@@ -1261,7 +1261,7 @@ static void raid1_read_request(struct mddev *mddev, struct bio *bio,
-       }
-       mirror = conf->mirrors + rdisk;
--      if (print_msg)
-+      if (r1bio_existed)
-               pr_info_ratelimited("md/raid1:%s: redirecting sector %llu to other mirror: %s\n",
-                                   mdname(mddev),
-                                   (unsigned long long)r1_bio->sector,
--- 
-2.35.1
-
diff --git a/queue-5.10/md-raid5-add-__rcu-annotation-to-struct-disk_info.patch b/queue-5.10/md-raid5-add-__rcu-annotation-to-struct-disk_info.patch
deleted file mode 100644 (file)
index 9502e4b..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-From 15c650ecd97cf5cb7fceed12dfb2d0561eb4353b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 7 Apr 2022 10:57:09 -0600
-Subject: md/raid5: Add __rcu annotation to struct disk_info
-
-From: Logan Gunthorpe <logang@deltatee.com>
-
-[ Upstream commit b0920ede081b3f1659872f80ce552305610675a6 ]
-
-rdev and replacement are protected in some circumstances with
-rcu_dereference and synchronize_rcu (in raid5_remove_disk()). However,
-they were not annotated with __rcu so a sparse warning is emitted for
-every rcu_dereference() call.
-
-Add the __rcu annotation and fix up the initialization with
-RCU_INIT_POINTER, all pointer modifications with rcu_assign_pointer(),
-a few cases where the pointer value is tested with rcu_access_pointer()
-and one case where READ_ONCE() is used instead of rcu_dereference(),
-a case in print_raid5_conf() that should have rcu_dereference() and
-rcu_read_[un]lock() calls.
-
-Additional sparse issues will be fixed up in further commits.
-
-Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
-Reviewed-by: Christoph Hellwig <hch@lst.de>
-Signed-off-by: Song Liu <song@kernel.org>
-Stable-dep-of: 1727fd5015d8 ("md: Replace snprintf with scnprintf")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/raid5.c | 46 ++++++++++++++++++++++++++--------------------
- drivers/md/raid5.h |  3 ++-
- 2 files changed, 28 insertions(+), 21 deletions(-)
-
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 01c7edf32936..0a941d62398f 100644
---- a/drivers/md/raid5.c
-+++ b/drivers/md/raid5.c
-@@ -6282,7 +6282,7 @@ static inline sector_t raid5_sync_request(struct mddev *mddev, sector_t sector_n
-        */
-       rcu_read_lock();
-       for (i = 0; i < conf->raid_disks; i++) {
--              struct md_rdev *rdev = READ_ONCE(conf->disks[i].rdev);
-+              struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev);
-               if (rdev == NULL || test_bit(Faulty, &rdev->flags))
-                       still_degraded = 1;
-@@ -7310,11 +7310,11 @@ static struct r5conf *setup_conf(struct mddev *mddev)
-               if (test_bit(Replacement, &rdev->flags)) {
-                       if (disk->replacement)
-                               goto abort;
--                      disk->replacement = rdev;
-+                      RCU_INIT_POINTER(disk->replacement, rdev);
-               } else {
-                       if (disk->rdev)
-                               goto abort;
--                      disk->rdev = rdev;
-+                      RCU_INIT_POINTER(disk->rdev, rdev);
-               }
-               if (test_bit(In_sync, &rdev->flags)) {
-@@ -7605,11 +7605,11 @@ static int raid5_run(struct mddev *mddev)
-                       rdev = conf->disks[i].replacement;
-                       conf->disks[i].replacement = NULL;
-                       clear_bit(Replacement, &rdev->flags);
--                      conf->disks[i].rdev = rdev;
-+                      rcu_assign_pointer(conf->disks[i].rdev, rdev);
-               }
-               if (!rdev)
-                       continue;
--              if (conf->disks[i].replacement &&
-+              if (rcu_access_pointer(conf->disks[i].replacement) &&
-                   conf->reshape_progress != MaxSector) {
-                       /* replacements and reshape simply do not mix. */
-                       pr_warn("md: cannot handle concurrent replacement and reshape.\n");
-@@ -7810,8 +7810,8 @@ static void raid5_status(struct seq_file *seq, struct mddev *mddev)
- static void print_raid5_conf (struct r5conf *conf)
- {
-+      struct md_rdev *rdev;
-       int i;
--      struct disk_info *tmp;
-       pr_debug("RAID conf printout:\n");
-       if (!conf) {
-@@ -7822,14 +7822,16 @@ static void print_raid5_conf (struct r5conf *conf)
-              conf->raid_disks,
-              conf->raid_disks - conf->mddev->degraded);
-+      rcu_read_lock();
-       for (i = 0; i < conf->raid_disks; i++) {
-               char b[BDEVNAME_SIZE];
--              tmp = conf->disks + i;
--              if (tmp->rdev)
-+              rdev = rcu_dereference(conf->disks[i].rdev);
-+              if (rdev)
-                       pr_debug(" disk %d, o:%d, dev:%s\n",
--                             i, !test_bit(Faulty, &tmp->rdev->flags),
--                             bdevname(tmp->rdev->bdev, b));
-+                             i, !test_bit(Faulty, &rdev->flags),
-+                             bdevname(rdev->bdev, b));
-       }
-+      rcu_read_unlock();
- }
- static int raid5_spare_active(struct mddev *mddev)
-@@ -7880,8 +7882,9 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
-       struct r5conf *conf = mddev->private;
-       int err = 0;
-       int number = rdev->raid_disk;
--      struct md_rdev **rdevp;
-+      struct md_rdev __rcu **rdevp;
-       struct disk_info *p = conf->disks + number;
-+      struct md_rdev *tmp;
-       print_raid5_conf(conf);
-       if (test_bit(Journal, &rdev->flags) && conf->log) {
-@@ -7899,9 +7902,9 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
-               log_exit(conf);
-               return 0;
-       }
--      if (rdev == p->rdev)
-+      if (rdev == rcu_access_pointer(p->rdev))
-               rdevp = &p->rdev;
--      else if (rdev == p->replacement)
-+      else if (rdev == rcu_access_pointer(p->replacement))
-               rdevp = &p->replacement;
-       else
-               return 0;
-@@ -7921,7 +7924,8 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
-       if (!test_bit(Faulty, &rdev->flags) &&
-           mddev->recovery_disabled != conf->recovery_disabled &&
-           !has_failed(conf) &&
--          (!p->replacement || p->replacement == rdev) &&
-+          (!rcu_access_pointer(p->replacement) ||
-+           rcu_access_pointer(p->replacement) == rdev) &&
-           number < conf->raid_disks) {
-               err = -EBUSY;
-               goto abort;
-@@ -7932,7 +7936,7 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
-               if (atomic_read(&rdev->nr_pending)) {
-                       /* lost the race, try later */
-                       err = -EBUSY;
--                      *rdevp = rdev;
-+                      rcu_assign_pointer(*rdevp, rdev);
-               }
-       }
-       if (!err) {
-@@ -7940,17 +7944,19 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
-               if (err)
-                       goto abort;
-       }
--      if (p->replacement) {
-+
-+      tmp = rcu_access_pointer(p->replacement);
-+      if (tmp) {
-               /* We must have just cleared 'rdev' */
--              p->rdev = p->replacement;
--              clear_bit(Replacement, &p->replacement->flags);
-+              rcu_assign_pointer(p->rdev, tmp);
-+              clear_bit(Replacement, &tmp->flags);
-               smp_mb(); /* Make sure other CPUs may see both as identical
-                          * but will never see neither - if they are careful
-                          */
--              p->replacement = NULL;
-+              rcu_assign_pointer(p->replacement, NULL);
-               if (!err)
--                      err = log_modify(conf, p->rdev, true);
-+                      err = log_modify(conf, tmp, true);
-       }
-       clear_bit(WantReplacement, &rdev->flags);
-diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
-index 5c05acf20e1f..666943926554 100644
---- a/drivers/md/raid5.h
-+++ b/drivers/md/raid5.h
-@@ -472,7 +472,8 @@ enum {
-  */
- struct disk_info {
--      struct md_rdev  *rdev, *replacement;
-+      struct md_rdev  __rcu *rdev;
-+      struct md_rdev  __rcu *replacement;
-       struct page     *extra_page; /* extra page to use in prexor */
- };
--- 
-2.35.1
-
index dd76992bd1d993cfc939c780e7fecc4de7fc7eef..1552376d3555a162d5f93b81bb6ecc48477ae9da 100644 (file)
@@ -27,14 +27,12 @@ Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
 Signed-off-by: Song Liu <song@kernel.org>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- drivers/md/raid5.c | 2 +-
+ drivers/md/raid5.c |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index ee0746fef417..ecc6214b8e43 100644
 --- a/drivers/md/raid5.c
 +++ b/drivers/md/raid5.c
-@@ -3933,7 +3933,7 @@ static void handle_stripe_fill(struct stripe_head *sh,
+@@ -3936,7 +3936,7 @@ static void handle_stripe_fill(struct st
                 * back cache (prexor with orig_page, and then xor with
                 * page) in the read path
                 */
@@ -43,6 +41,3 @@ index ee0746fef417..ecc6214b8e43 100644
                        if (test_bit(STRIPE_R5C_CACHING, &sh->state))
                                r5c_make_stripe_write_out(sh);
                        goto out;
--- 
-2.35.1
-
index a90fb53a4577bf083321c77c8b7c5e946bea2d95..3f2661470f2c28c33338900d8ae4bbe7ffa9c50d 100644 (file)
@@ -106,11 +106,9 @@ Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
 Signed-off-by: Song Liu <song@kernel.org>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- drivers/md/raid5.c | 12 ++++++++++++
+ drivers/md/raid5.c |   12 ++++++++++++
  1 file changed, 12 insertions(+)
 
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index ecc6214b8e43..8eca638e6896 100644
 --- a/drivers/md/raid5.c
 +++ b/drivers/md/raid5.c
 @@ -36,6 +36,7 @@
@@ -121,7 +119,7 @@ index ecc6214b8e43..8eca638e6896 100644
  #include <linux/kthread.h>
  #include <linux/raid/pq.h>
  #include <linux/async_tx.h>
-@@ -6516,7 +6517,18 @@ static void raid5d(struct md_thread *thread)
+@@ -6519,7 +6520,18 @@ static void raid5d(struct md_thread *thr
                        spin_unlock_irq(&conf->device_lock);
                        md_check_recovery(mddev);
                        spin_lock_irq(&conf->device_lock);
@@ -140,6 +138,3 @@ index ecc6214b8e43..8eca638e6896 100644
        }
        pr_debug("%d stripes handled\n", handled);
  
--- 
-2.35.1
-
diff --git a/queue-5.10/md-remove-most-calls-to-bdevname.patch b/queue-5.10/md-remove-most-calls-to-bdevname.patch
deleted file mode 100644 (file)
index cd4b00e..0000000
+++ /dev/null
@@ -1,1133 +0,0 @@
-From a47a2963f62ad1048077c56887c3e89dee6c6d48 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 12 May 2022 08:19:13 +0200
-Subject: md: remove most calls to bdevname
-
-From: Christoph Hellwig <hch@lst.de>
-
-[ Upstream commit 913cce5a1e588e3470ea064fe4ea336037d3a454 ]
-
-Use the %pg format specifier to save on stack consumption and code size.
-
-Signed-off-by: Christoph Hellwig <hch@lst.de>
-Signed-off-by: Song Liu <song@kernel.org>
-Stable-dep-of: 1727fd5015d8 ("md: Replace snprintf with scnprintf")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/md-linear.c    |   5 +-
- drivers/md/md-multipath.c |  15 ++--
- drivers/md/md.c           | 152 ++++++++++++++++----------------------
- drivers/md/raid0.c        |  28 +++----
- drivers/md/raid1.c        |  24 +++---
- drivers/md/raid10.c       |  54 ++++++--------
- drivers/md/raid5-cache.c  |   5 +-
- drivers/md/raid5-ppl.c    |  27 +++----
- drivers/md/raid5.c        |  37 ++++------
- 9 files changed, 147 insertions(+), 200 deletions(-)
-
-diff --git a/drivers/md/md-linear.c b/drivers/md/md-linear.c
-index 5ab22069b5be..3460ff7cb657 100644
---- a/drivers/md/md-linear.c
-+++ b/drivers/md/md-linear.c
-@@ -216,7 +216,6 @@ static void linear_free(struct mddev *mddev, void *priv)
- static bool linear_make_request(struct mddev *mddev, struct bio *bio)
- {
--      char b[BDEVNAME_SIZE];
-       struct dev_info *tmp_dev;
-       sector_t start_sector, end_sector, data_offset;
-       sector_t bio_sector = bio->bi_iter.bi_sector;
-@@ -268,10 +267,10 @@ static bool linear_make_request(struct mddev *mddev, struct bio *bio)
-       return true;
- out_of_bounds:
--      pr_err("md/linear:%s: make_request: Sector %llu out of bounds on dev %s: %llu sectors, offset %llu\n",
-+      pr_err("md/linear:%s: make_request: Sector %llu out of bounds on dev %pg: %llu sectors, offset %llu\n",
-              mdname(mddev),
-              (unsigned long long)bio->bi_iter.bi_sector,
--             bdevname(tmp_dev->rdev->bdev, b),
-+             tmp_dev->rdev->bdev,
-              (unsigned long long)tmp_dev->rdev->sectors,
-              (unsigned long long)start_sector);
-       bio_io_error(bio);
-diff --git a/drivers/md/md-multipath.c b/drivers/md/md-multipath.c
-index 776bbe542db5..9f1b2f38a05d 100644
---- a/drivers/md/md-multipath.c
-+++ b/drivers/md/md-multipath.c
-@@ -87,10 +87,9 @@ static void multipath_end_request(struct bio *bio)
-               /*
-                * oops, IO error:
-                */
--              char b[BDEVNAME_SIZE];
-               md_error (mp_bh->mddev, rdev);
--              pr_info("multipath: %s: rescheduling sector %llu\n",
--                      bdevname(rdev->bdev,b),
-+              pr_info("multipath: %pg: rescheduling sector %llu\n",
-+                      rdev->bdev,
-                       (unsigned long long)bio->bi_iter.bi_sector);
-               multipath_reschedule_retry(mp_bh);
-       } else
-@@ -157,7 +156,6 @@ static void multipath_status(struct seq_file *seq, struct mddev *mddev)
- static void multipath_error (struct mddev *mddev, struct md_rdev *rdev)
- {
-       struct mpconf *conf = mddev->private;
--      char b[BDEVNAME_SIZE];
-       if (conf->raid_disks - mddev->degraded <= 1) {
-               /*
-@@ -180,9 +178,9 @@ static void multipath_error (struct mddev *mddev, struct md_rdev *rdev)
-       }
-       set_bit(Faulty, &rdev->flags);
-       set_bit(MD_SB_CHANGE_DEVS, &mddev->sb_flags);
--      pr_err("multipath: IO failure on %s, disabling IO path.\n"
-+      pr_err("multipath: IO failure on %pg, disabling IO path.\n"
-              "multipath: Operation continuing on %d IO paths.\n",
--             bdevname(rdev->bdev, b),
-+             rdev->bdev,
-              conf->raid_disks - mddev->degraded);
- }
-@@ -200,12 +198,11 @@ static void print_multipath_conf (struct mpconf *conf)
-                conf->raid_disks);
-       for (i = 0; i < conf->raid_disks; i++) {
--              char b[BDEVNAME_SIZE];
-               tmp = conf->multipaths + i;
-               if (tmp->rdev)
--                      pr_debug(" disk%d, o:%d, dev:%s\n",
-+                      pr_debug(" disk%d, o:%d, dev:%pg\n",
-                                i,!test_bit(Faulty, &tmp->rdev->flags),
--                               bdevname(tmp->rdev->bdev,b));
-+                               tmp->rdev->bdev);
-       }
- }
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 1410c550c0ff..4b5fb5c304f3 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -1056,8 +1056,6 @@ EXPORT_SYMBOL_GPL(sync_page_io);
- static int read_disk_sb(struct md_rdev *rdev, int size)
- {
--      char b[BDEVNAME_SIZE];
--
-       if (rdev->sb_loaded)
-               return 0;
-@@ -1067,8 +1065,8 @@ static int read_disk_sb(struct md_rdev *rdev, int size)
-       return 0;
- fail:
--      pr_err("md: disabled device %s, could not read superblock.\n",
--             bdevname(rdev->bdev,b));
-+      pr_err("md: disabled device %pg, could not read superblock.\n",
-+             rdev->bdev);
-       return -EINVAL;
- }
-@@ -1214,7 +1212,6 @@ EXPORT_SYMBOL(md_check_no_bitmap);
-  */
- static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_version)
- {
--      char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
-       mdp_super_t *sb;
-       int ret;
-       bool spare_disk = true;
-@@ -1233,19 +1230,19 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
-       ret = -EINVAL;
--      bdevname(rdev->bdev, b);
-       sb = page_address(rdev->sb_page);
-       if (sb->md_magic != MD_SB_MAGIC) {
--              pr_warn("md: invalid raid superblock magic on %s\n", b);
-+              pr_warn("md: invalid raid superblock magic on %pg\n",
-+                      rdev->bdev);
-               goto abort;
-       }
-       if (sb->major_version != 0 ||
-           sb->minor_version < 90 ||
-           sb->minor_version > 91) {
--              pr_warn("Bad version number %d.%d on %s\n",
--                      sb->major_version, sb->minor_version, b);
-+              pr_warn("Bad version number %d.%d on %pg\n",
-+                      sb->major_version, sb->minor_version, rdev->bdev);
-               goto abort;
-       }
-@@ -1253,7 +1250,7 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
-               goto abort;
-       if (md_csum_fold(calc_sb_csum(sb)) != md_csum_fold(sb->sb_csum)) {
--              pr_warn("md: invalid superblock checksum on %s\n", b);
-+              pr_warn("md: invalid superblock checksum on %pg\n", rdev->bdev);
-               goto abort;
-       }
-@@ -1285,13 +1282,13 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
-               __u64 ev1, ev2;
-               mdp_super_t *refsb = page_address(refdev->sb_page);
-               if (!md_uuid_equal(refsb, sb)) {
--                      pr_warn("md: %s has different UUID to %s\n",
--                              b, bdevname(refdev->bdev,b2));
-+                      pr_warn("md: %pg has different UUID to %pg\n",
-+                              rdev->bdev, refdev->bdev);
-                       goto abort;
-               }
-               if (!md_sb_equal(refsb, sb)) {
--                      pr_warn("md: %s has same UUID but different superblock to %s\n",
--                              b, bdevname(refdev->bdev, b2));
-+                      pr_warn("md: %pg has same UUID but different superblock to %pg\n",
-+                              rdev->bdev, refdev->bdev);
-                       goto abort;
-               }
-               ev1 = md_event(sb);
-@@ -1655,7 +1652,6 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
-       int ret;
-       sector_t sb_start;
-       sector_t sectors;
--      char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
-       int bmask;
-       bool spare_disk = true;
-@@ -1700,13 +1696,13 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
-               return -EINVAL;
-       if (calc_sb_1_csum(sb) != sb->sb_csum) {
--              pr_warn("md: invalid superblock checksum on %s\n",
--                      bdevname(rdev->bdev,b));
-+              pr_warn("md: invalid superblock checksum on %pg\n",
-+                      rdev->bdev);
-               return -EINVAL;
-       }
-       if (le64_to_cpu(sb->data_size) < 10) {
--              pr_warn("md: data_size too small on %s\n",
--                      bdevname(rdev->bdev,b));
-+              pr_warn("md: data_size too small on %pg\n",
-+                      rdev->bdev);
-               return -EINVAL;
-       }
-       if (sb->pad0 ||
-@@ -1812,9 +1808,9 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
-                   sb->level != refsb->level ||
-                   sb->layout != refsb->layout ||
-                   sb->chunksize != refsb->chunksize) {
--                      pr_warn("md: %s has strangely different superblock to %s\n",
--                              bdevname(rdev->bdev,b),
--                              bdevname(refdev->bdev,b2));
-+                      pr_warn("md: %pg has strangely different superblock to %pg\n",
-+                              rdev->bdev,
-+                              refdev->bdev);
-                       return -EINVAL;
-               }
-               ev1 = le64_to_cpu(sb->events);
-@@ -2395,7 +2391,6 @@ EXPORT_SYMBOL(md_integrity_register);
- int md_integrity_add_rdev(struct md_rdev *rdev, struct mddev *mddev)
- {
-       struct blk_integrity *bi_mddev;
--      char name[BDEVNAME_SIZE];
-       if (!mddev->gendisk)
-               return 0;
-@@ -2406,8 +2401,8 @@ int md_integrity_add_rdev(struct md_rdev *rdev, struct mddev *mddev)
-               return 0;
-       if (blk_integrity_compare(mddev->gendisk, rdev->bdev->bd_disk) != 0) {
--              pr_err("%s: incompatible integrity profile for %s\n",
--                     mdname(mddev), bdevname(rdev->bdev, name));
-+              pr_err("%s: incompatible integrity profile for %pg\n",
-+                     mdname(mddev), rdev->bdev);
-               return -ENXIO;
-       }
-@@ -2513,11 +2508,9 @@ static void rdev_delayed_delete(struct work_struct *ws)
- static void unbind_rdev_from_array(struct md_rdev *rdev)
- {
--      char b[BDEVNAME_SIZE];
--
-       bd_unlink_disk_holder(rdev->bdev, rdev->mddev->gendisk);
-       list_del_rcu(&rdev->same_set);
--      pr_debug("md: unbind<%s>\n", bdevname(rdev->bdev,b));
-+      pr_debug("md: unbind<%pg>\n", rdev->bdev);
-       mddev_destroy_serial_pool(rdev->mddev, rdev, false);
-       rdev->mddev = NULL;
-       sysfs_remove_link(&rdev->kobj, "block");
-@@ -2570,9 +2563,7 @@ void md_autodetect_dev(dev_t dev);
- static void export_rdev(struct md_rdev *rdev)
- {
--      char b[BDEVNAME_SIZE];
--
--      pr_debug("md: export_rdev(%s)\n", bdevname(rdev->bdev,b));
-+      pr_debug("md: export_rdev(%pg)\n", rdev->bdev);
-       md_rdev_clear(rdev);
- #ifndef MODULE
-       if (test_bit(AutoDetected, &rdev->flags))
-@@ -2830,8 +2821,6 @@ void md_update_sb(struct mddev *mddev, int force_change)
- rewrite:
-       md_bitmap_update_sb(mddev->bitmap);
-       rdev_for_each(rdev, mddev) {
--              char b[BDEVNAME_SIZE];
--
-               if (rdev->sb_loaded != 1)
-                       continue; /* no noise on spare devices */
-@@ -2839,8 +2828,8 @@ void md_update_sb(struct mddev *mddev, int force_change)
-                       md_super_write(mddev,rdev,
-                                      rdev->sb_start, rdev->sb_size,
-                                      rdev->sb_page);
--                      pr_debug("md: (write) %s's sb offset: %llu\n",
--                               bdevname(rdev->bdev, b),
-+                      pr_debug("md: (write) %pg's sb offset: %llu\n",
-+                               rdev->bdev,
-                                (unsigned long long)rdev->sb_start);
-                       rdev->sb_events = mddev->events;
-                       if (rdev->badblocks.size) {
-@@ -2852,8 +2841,8 @@ void md_update_sb(struct mddev *mddev, int force_change)
-                       }
-               } else
--                      pr_debug("md: %s (skipping faulty)\n",
--                               bdevname(rdev->bdev, b));
-+                      pr_debug("md: %pg (skipping faulty)\n",
-+                               rdev->bdev);
-               if (mddev->level == LEVEL_MULTIPATH)
-                       /* only need to write one superblock... */
-@@ -3726,7 +3715,6 @@ EXPORT_SYMBOL_GPL(md_rdev_init);
-  */
- static struct md_rdev *md_import_device(dev_t newdev, int super_format, int super_minor)
- {
--      char b[BDEVNAME_SIZE];
-       int err;
-       struct md_rdev *rdev;
-       sector_t size;
-@@ -3750,8 +3738,8 @@ static struct md_rdev *md_import_device(dev_t newdev, int super_format, int supe
-       size = i_size_read(rdev->bdev->bd_inode) >> BLOCK_SIZE_BITS;
-       if (!size) {
--              pr_warn("md: %s has zero or unknown size, marking faulty!\n",
--                      bdevname(rdev->bdev,b));
-+              pr_warn("md: %pg has zero or unknown size, marking faulty!\n",
-+                      rdev->bdev);
-               err = -EINVAL;
-               goto abort_free;
-       }
-@@ -3760,14 +3748,14 @@ static struct md_rdev *md_import_device(dev_t newdev, int super_format, int supe
-               err = super_types[super_format].
-                       load_super(rdev, NULL, super_minor);
-               if (err == -EINVAL) {
--                      pr_warn("md: %s does not have a valid v%d.%d superblock, not importing!\n",
--                              bdevname(rdev->bdev,b),
-+                      pr_warn("md: %pg does not have a valid v%d.%d superblock, not importing!\n",
-+                              rdev->bdev,
-                               super_format, super_minor);
-                       goto abort_free;
-               }
-               if (err < 0) {
--                      pr_warn("md: could not read %s's sb, not importing!\n",
--                              bdevname(rdev->bdev,b));
-+                      pr_warn("md: could not read %pg's sb, not importing!\n",
-+                              rdev->bdev);
-                       goto abort_free;
-               }
-       }
-@@ -3790,7 +3778,6 @@ static int analyze_sbs(struct mddev *mddev)
- {
-       int i;
-       struct md_rdev *rdev, *freshest, *tmp;
--      char b[BDEVNAME_SIZE];
-       freshest = NULL;
-       rdev_for_each_safe(rdev, tmp, mddev)
-@@ -3802,8 +3789,8 @@ static int analyze_sbs(struct mddev *mddev)
-               case 0:
-                       break;
-               default:
--                      pr_warn("md: fatal superblock inconsistency in %s -- removing from array\n",
--                              bdevname(rdev->bdev,b));
-+                      pr_warn("md: fatal superblock inconsistency in %pg -- removing from array\n",
-+                              rdev->bdev);
-                       md_kick_rdev_from_array(rdev);
-               }
-@@ -3821,8 +3808,8 @@ static int analyze_sbs(struct mddev *mddev)
-               if (mddev->max_disks &&
-                   (rdev->desc_nr >= mddev->max_disks ||
-                    i > mddev->max_disks)) {
--                      pr_warn("md: %s: %s: only %d devices permitted\n",
--                              mdname(mddev), bdevname(rdev->bdev, b),
-+                      pr_warn("md: %s: %pg: only %d devices permitted\n",
-+                              mdname(mddev), rdev->bdev,
-                               mddev->max_disks);
-                       md_kick_rdev_from_array(rdev);
-                       continue;
-@@ -3830,8 +3817,8 @@ static int analyze_sbs(struct mddev *mddev)
-               if (rdev != freshest) {
-                       if (super_types[mddev->major_version].
-                           validate_super(mddev, rdev)) {
--                              pr_warn("md: kicking non-fresh %s from array!\n",
--                                      bdevname(rdev->bdev,b));
-+                              pr_warn("md: kicking non-fresh %pg from array!\n",
-+                                      rdev->bdev);
-                               md_kick_rdev_from_array(rdev);
-                               continue;
-                       }
-@@ -5946,7 +5933,6 @@ int md_run(struct mddev *mddev)
-               /* Warn if this is a potentially silly
-                * configuration.
-                */
--              char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
-               struct md_rdev *rdev2;
-               int warned = 0;
-@@ -5955,10 +5941,10 @@ int md_run(struct mddev *mddev)
-                               if (rdev < rdev2 &&
-                                   rdev->bdev->bd_disk ==
-                                   rdev2->bdev->bd_disk) {
--                                      pr_warn("%s: WARNING: %s appears to be on the same physical disk as %s.\n",
-+                                      pr_warn("%s: WARNING: %pg appears to be on the same physical disk as %pg.\n",
-                                               mdname(mddev),
--                                              bdevname(rdev->bdev,b),
--                                              bdevname(rdev2->bdev,b2));
-+                                              rdev->bdev,
-+                                              rdev2->bdev);
-                                       warned = 1;
-                               }
-                       }
-@@ -6481,8 +6467,7 @@ static void autorun_array(struct mddev *mddev)
-       pr_info("md: running: ");
-       rdev_for_each(rdev, mddev) {
--              char b[BDEVNAME_SIZE];
--              pr_cont("<%s>", bdevname(rdev->bdev,b));
-+              pr_cont("<%pg>", rdev->bdev);
-       }
-       pr_cont("\n");
-@@ -6509,7 +6494,6 @@ static void autorun_devices(int part)
- {
-       struct md_rdev *rdev0, *rdev, *tmp;
-       struct mddev *mddev;
--      char b[BDEVNAME_SIZE];
-       pr_info("md: autorun ...\n");
-       while (!list_empty(&pending_raid_disks)) {
-@@ -6519,12 +6503,12 @@ static void autorun_devices(int part)
-               rdev0 = list_entry(pending_raid_disks.next,
-                                        struct md_rdev, same_set);
--              pr_debug("md: considering %s ...\n", bdevname(rdev0->bdev,b));
-+              pr_debug("md: considering %pg ...\n", rdev0->bdev);
-               INIT_LIST_HEAD(&candidates);
-               rdev_for_each_list(rdev, tmp, &pending_raid_disks)
-                       if (super_90_load(rdev, rdev0, 0) >= 0) {
--                              pr_debug("md:  adding %s ...\n",
--                                       bdevname(rdev->bdev,b));
-+                              pr_debug("md:  adding %pg ...\n",
-+                                       rdev->bdev);
-                               list_move(&rdev->same_set, &candidates);
-                       }
-               /*
-@@ -6541,8 +6525,8 @@ static void autorun_devices(int part)
-                       unit = MINOR(dev);
-               }
-               if (rdev0->preferred_minor != unit) {
--                      pr_warn("md: unit number in %s is bad: %d\n",
--                              bdevname(rdev0->bdev, b), rdev0->preferred_minor);
-+                      pr_warn("md: unit number in %pg is bad: %d\n",
-+                              rdev0->bdev, rdev0->preferred_minor);
-                       break;
-               }
-@@ -6555,8 +6539,8 @@ static void autorun_devices(int part)
-                       pr_warn("md: %s locked, cannot run\n", mdname(mddev));
-               else if (mddev->raid_disks || mddev->major_version
-                        || !list_empty(&mddev->disks)) {
--                      pr_warn("md: %s already running, cannot run %s\n",
--                              mdname(mddev), bdevname(rdev0->bdev,b));
-+                      pr_warn("md: %s already running, cannot run %pg\n",
-+                              mdname(mddev), rdev0->bdev);
-                       mddev_unlock(mddev);
-               } else {
-                       pr_debug("md: created %s\n", mdname(mddev));
-@@ -6730,7 +6714,6 @@ static int get_disk_info(struct mddev *mddev, void __user * arg)
- int md_add_new_disk(struct mddev *mddev, struct mdu_disk_info_s *info)
- {
--      char b[BDEVNAME_SIZE], b2[BDEVNAME_SIZE];
-       struct md_rdev *rdev;
-       dev_t dev = MKDEV(info->major,info->minor);
-@@ -6760,9 +6743,9 @@ int md_add_new_disk(struct mddev *mddev, struct mdu_disk_info_s *info)
-                       err = super_types[mddev->major_version]
-                               .load_super(rdev, rdev0, mddev->minor_version);
-                       if (err < 0) {
--                              pr_warn("md: %s has different UUID to %s\n",
--                                      bdevname(rdev->bdev,b),
--                                      bdevname(rdev0->bdev,b2));
-+                              pr_warn("md: %pg has different UUID to %pg\n",
-+                                      rdev->bdev,
-+                                      rdev0->bdev);
-                               export_rdev(rdev);
-                               return -EINVAL;
-                       }
-@@ -6937,7 +6920,6 @@ int md_add_new_disk(struct mddev *mddev, struct mdu_disk_info_s *info)
- static int hot_remove_disk(struct mddev *mddev, dev_t dev)
- {
--      char b[BDEVNAME_SIZE];
-       struct md_rdev *rdev;
-       if (!mddev->pers)
-@@ -6972,14 +6954,13 @@ static int hot_remove_disk(struct mddev *mddev, dev_t dev)
-       return 0;
- busy:
--      pr_debug("md: cannot remove active disk %s from %s ...\n",
--               bdevname(rdev->bdev,b), mdname(mddev));
-+      pr_debug("md: cannot remove active disk %pg from %s ...\n",
-+               rdev->bdev, mdname(mddev));
-       return -EBUSY;
- }
- static int hot_add_disk(struct mddev *mddev, dev_t dev)
- {
--      char b[BDEVNAME_SIZE];
-       int err;
-       struct md_rdev *rdev;
-@@ -7012,8 +6993,8 @@ static int hot_add_disk(struct mddev *mddev, dev_t dev)
-       rdev->sectors = rdev->sb_start;
-       if (test_bit(Faulty, &rdev->flags)) {
--              pr_warn("md: can not hot-add faulty %s disk to %s!\n",
--                      bdevname(rdev->bdev,b), mdname(mddev));
-+              pr_warn("md: can not hot-add faulty %pg disk to %s!\n",
-+                      rdev->bdev, mdname(mddev));
-               err = -EINVAL;
-               goto abort_export;
-       }
-@@ -7040,8 +7021,8 @@ static int hot_add_disk(struct mddev *mddev, dev_t dev)
-        * disable on the whole MD.
-        */
-       if (!blk_queue_nowait(bdev_get_queue(rdev->bdev))) {
--              pr_info("%s: Disabling nowait because %s does not support nowait\n",
--                      mdname(mddev), bdevname(rdev->bdev, b));
-+              pr_info("%s: Disabling nowait because %pg does not support nowait\n",
-+                      mdname(mddev), rdev->bdev);
-               blk_queue_flag_clear(QUEUE_FLAG_NOWAIT, mddev->queue);
-       }
-       /*
-@@ -8043,10 +8024,8 @@ static void status_unused(struct seq_file *seq)
-       seq_printf(seq, "unused devices: ");
-       list_for_each_entry(rdev, &pending_raid_disks, same_set) {
--              char b[BDEVNAME_SIZE];
-               i++;
--              seq_printf(seq, "%s ",
--                            bdevname(rdev->bdev,b));
-+              seq_printf(seq, "%pg ", rdev->bdev);
-       }
-       if (!i)
-               seq_printf(seq, "<none>");
-@@ -8286,9 +8265,8 @@ static int md_seq_show(struct seq_file *seq, void *v)
-               sectors = 0;
-               rcu_read_lock();
-               rdev_for_each_rcu(rdev, mddev) {
--                      char b[BDEVNAME_SIZE];
--                      seq_printf(seq, " %s[%d]",
--                              bdevname(rdev->bdev,b), rdev->desc_nr);
-+                      seq_printf(seq, " %pg[%d]", rdev->bdev, rdev->desc_nr);
-+
-                       if (test_bit(WriteMostly, &rdev->flags))
-                               seq_printf(seq, "(W)");
-                       if (test_bit(Journal, &rdev->flags))
-@@ -9615,7 +9593,6 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
-       struct mdp_superblock_1 *sb = page_address(rdev->sb_page);
-       struct md_rdev *rdev2, *tmp;
-       int role, ret;
--      char b[BDEVNAME_SIZE];
-       /*
-        * If size is changed in another node then we need to
-@@ -9639,7 +9616,8 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
-               if (test_bit(Candidate, &rdev2->flags)) {
-                       if (role == MD_DISK_ROLE_FAULTY) {
--                              pr_info("md: Removing Candidate device %s because add failed\n", bdevname(rdev2->bdev,b));
-+                              pr_info("md: Removing Candidate device %pg because add failed\n",
-+                                      rdev2->bdev);
-                               md_kick_rdev_from_array(rdev2);
-                               continue;
-                       }
-@@ -9656,8 +9634,8 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
-                             MD_FEATURE_RESHAPE_ACTIVE)) {
-                               rdev2->saved_raid_disk = role;
-                               ret = remove_and_add_spares(mddev, rdev2);
--                              pr_info("Activated spare: %s\n",
--                                      bdevname(rdev2->bdev,b));
-+                              pr_info("Activated spare: %pg\n",
-+                                      rdev2->bdev);
-                               /* wakeup mddev->thread here, so array could
-                                * perform resync with the new activated disk */
-                               set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
-diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
-index a4c0cafa6010..4a80cf43304b 100644
---- a/drivers/md/raid0.c
-+++ b/drivers/md/raid0.c
-@@ -37,7 +37,6 @@ static void dump_zones(struct mddev *mddev)
-       int j, k;
-       sector_t zone_size = 0;
-       sector_t zone_start = 0;
--      char b[BDEVNAME_SIZE];
-       struct r0conf *conf = mddev->private;
-       int raid_disks = conf->strip_zone[0].nb_dev;
-       pr_debug("md: RAID0 configuration for %s - %d zone%s\n",
-@@ -48,9 +47,8 @@ static void dump_zones(struct mddev *mddev)
-               int len = 0;
-               for (k = 0; k < conf->strip_zone[j].nb_dev; k++)
--                      len += snprintf(line+len, 200-len, "%s%s", k?"/":"",
--                                      bdevname(conf->devlist[j*raid_disks
--                                                             + k]->bdev, b));
-+                      len += snprintf(line+len, 200-len, "%s%pg", k?"/":"",
-+                              conf->devlist[j * raid_disks + k]->bdev);
-               pr_debug("md: zone%d=[%s]\n", j, line);
-               zone_size  = conf->strip_zone[j].zone_end - zone_start;
-@@ -69,8 +67,6 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
-       struct md_rdev *smallest, *rdev1, *rdev2, *rdev, **dev;
-       struct strip_zone *zone;
-       int cnt;
--      char b[BDEVNAME_SIZE];
--      char b2[BDEVNAME_SIZE];
-       struct r0conf *conf = kzalloc(sizeof(*conf), GFP_KERNEL);
-       unsigned blksize = 512;
-@@ -78,9 +74,9 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
-       if (!conf)
-               return -ENOMEM;
-       rdev_for_each(rdev1, mddev) {
--              pr_debug("md/raid0:%s: looking at %s\n",
-+              pr_debug("md/raid0:%s: looking at %pg\n",
-                        mdname(mddev),
--                       bdevname(rdev1->bdev, b));
-+                       rdev1->bdev);
-               c = 0;
-               /* round size to chunk_size */
-@@ -92,12 +88,12 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
-                                     rdev1->bdev->bd_disk->queue));
-               rdev_for_each(rdev2, mddev) {
--                      pr_debug("md/raid0:%s:   comparing %s(%llu)"
--                               " with %s(%llu)\n",
-+                      pr_debug("md/raid0:%s:   comparing %pg(%llu)"
-+                               " with %pg(%llu)\n",
-                                mdname(mddev),
--                               bdevname(rdev1->bdev,b),
-+                               rdev1->bdev,
-                                (unsigned long long)rdev1->sectors,
--                               bdevname(rdev2->bdev,b2),
-+                               rdev2->bdev,
-                                (unsigned long long)rdev2->sectors);
-                       if (rdev2 == rdev1) {
-                               pr_debug("md/raid0:%s:   END\n",
-@@ -225,15 +221,15 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
-               for (j=0; j<cnt; j++) {
-                       rdev = conf->devlist[j];
-                       if (rdev->sectors <= zone->dev_start) {
--                              pr_debug("md/raid0:%s: checking %s ... nope\n",
-+                              pr_debug("md/raid0:%s: checking %pg ... nope\n",
-                                        mdname(mddev),
--                                       bdevname(rdev->bdev, b));
-+                                       rdev->bdev);
-                               continue;
-                       }
--                      pr_debug("md/raid0:%s: checking %s ..."
-+                      pr_debug("md/raid0:%s: checking %pg ..."
-                                " contained as device %d\n",
-                                mdname(mddev),
--                               bdevname(rdev->bdev, b), c);
-+                               rdev->bdev, c);
-                       dev[c] = rdev;
-                       c++;
-                       if (!smallest || rdev->sectors < smallest->sectors) {
-diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index b08f44c791fa..8e6c2c29022a 100644
---- a/drivers/md/raid1.c
-+++ b/drivers/md/raid1.c
-@@ -396,10 +396,9 @@ static void raid1_end_read_request(struct bio *bio)
-               /*
-                * oops, read error:
-                */
--              char b[BDEVNAME_SIZE];
--              pr_err_ratelimited("md/raid1:%s: %s: rescheduling sector %llu\n",
-+              pr_err_ratelimited("md/raid1:%s: %pg: rescheduling sector %llu\n",
-                                  mdname(conf->mddev),
--                                 bdevname(rdev->bdev, b),
-+                                 rdev->bdev,
-                                  (unsigned long long)r1_bio->sector);
-               set_bit(R1BIO_ReadError, &r1_bio->state);
-               reschedule_retry(r1_bio);
-@@ -1262,10 +1261,10 @@ static void raid1_read_request(struct mddev *mddev, struct bio *bio,
-       mirror = conf->mirrors + rdisk;
-       if (r1bio_existed)
--              pr_info_ratelimited("md/raid1:%s: redirecting sector %llu to other mirror: %s\n",
-+              pr_info_ratelimited("md/raid1:%s: redirecting sector %llu to other mirror: %pg\n",
-                                   mdname(mddev),
-                                   (unsigned long long)r1_bio->sector,
--                                  bdevname(mirror->rdev->bdev, b));
-+                                  mirror->rdev->bdev);
-       if (test_bit(WriteMostly, &mirror->rdev->flags) &&
-           bitmap) {
-@@ -1593,7 +1592,6 @@ static void raid1_status(struct seq_file *seq, struct mddev *mddev)
- static void raid1_error(struct mddev *mddev, struct md_rdev *rdev)
- {
--      char b[BDEVNAME_SIZE];
-       struct r1conf *conf = mddev->private;
-       unsigned long flags;
-@@ -1627,9 +1625,9 @@ static void raid1_error(struct mddev *mddev, struct md_rdev *rdev)
-       set_bit(MD_RECOVERY_INTR, &mddev->recovery);
-       set_mask_bits(&mddev->sb_flags, 0,
-                     BIT(MD_SB_CHANGE_DEVS) | BIT(MD_SB_CHANGE_PENDING));
--      pr_crit("md/raid1:%s: Disk failure on %s, disabling device.\n"
-+      pr_crit("md/raid1:%s: Disk failure on %pg, disabling device.\n"
-               "md/raid1:%s: Operation continuing on %d devices.\n",
--              mdname(mddev), bdevname(rdev->bdev, b),
-+              mdname(mddev), rdev->bdev,
-               mdname(mddev), conf->raid_disks - mddev->degraded);
- }
-@@ -1647,13 +1645,12 @@ static void print_conf(struct r1conf *conf)
-       rcu_read_lock();
-       for (i = 0; i < conf->raid_disks; i++) {
--              char b[BDEVNAME_SIZE];
-               struct md_rdev *rdev = rcu_dereference(conf->mirrors[i].rdev);
-               if (rdev)
--                      pr_debug(" disk %d, wo:%d, o:%d, dev:%s\n",
-+                      pr_debug(" disk %d, wo:%d, o:%d, dev:%pg\n",
-                                i, !test_bit(In_sync, &rdev->flags),
-                                !test_bit(Faulty, &rdev->flags),
--                               bdevname(rdev->bdev,b));
-+                               rdev->bdev);
-       }
-       rcu_read_unlock();
- }
-@@ -2292,7 +2289,6 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
-               }
-               d = start;
-               while (d != read_disk) {
--                      char b[BDEVNAME_SIZE];
-                       if (d==0)
-                               d = conf->raid_disks * 2;
-                       d--;
-@@ -2305,11 +2301,11 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
-                               if (r1_sync_page_io(rdev, sect, s,
-                                                   conf->tmppage, READ)) {
-                                       atomic_add(s, &rdev->corrected_errors);
--                                      pr_info("md/raid1:%s: read error corrected (%d sectors at %llu on %s)\n",
-+                                      pr_info("md/raid1:%s: read error corrected (%d sectors at %llu on %pg)\n",
-                                               mdname(mddev), s,
-                                               (unsigned long long)(sect +
-                                                                    rdev->data_offset),
--                                              bdevname(rdev->bdev, b));
-+                                              rdev->bdev);
-                               }
-                               rdev_dec_pending(rdev, mddev);
-                       } else
-diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index 0e741a8d278d..dd066d1ed145 100644
---- a/drivers/md/raid10.c
-+++ b/drivers/md/raid10.c
-@@ -389,10 +389,9 @@ static void raid10_end_read_request(struct bio *bio)
-               /*
-                * oops, read error - keep the refcount on the rdev
-                */
--              char b[BDEVNAME_SIZE];
--              pr_err_ratelimited("md/raid10:%s: %s: rescheduling sector %llu\n",
-+              pr_err_ratelimited("md/raid10:%s: %pg: rescheduling sector %llu\n",
-                                  mdname(conf->mddev),
--                                 bdevname(rdev->bdev, b),
-+                                 rdev->bdev,
-                                  (unsigned long long)r10_bio->sector);
-               set_bit(R10BIO_ReadError, &r10_bio->state);
-               reschedule_retry(r10_bio);
-@@ -1168,9 +1167,9 @@ static void raid10_read_request(struct mddev *mddev, struct bio *bio,
-               return;
-       }
-       if (err_rdev)
--              pr_err_ratelimited("md/raid10:%s: %s: redirecting sector %llu to another mirror\n",
-+              pr_err_ratelimited("md/raid10:%s: %pg: redirecting sector %llu to another mirror\n",
-                                  mdname(mddev),
--                                 bdevname(rdev->bdev, b),
-+                                 rdev->bdev,
-                                  (unsigned long long)r10_bio->sector);
-       if (max_sectors < bio_sectors(bio)) {
-               struct bio *split = bio_split(bio, max_sectors,
-@@ -1617,7 +1616,6 @@ static int enough(struct r10conf *conf, int ignore)
- static void raid10_error(struct mddev *mddev, struct md_rdev *rdev)
- {
--      char b[BDEVNAME_SIZE];
-       struct r10conf *conf = mddev->private;
-       unsigned long flags;
-@@ -1647,9 +1645,9 @@ static void raid10_error(struct mddev *mddev, struct md_rdev *rdev)
-       set_mask_bits(&mddev->sb_flags, 0,
-                     BIT(MD_SB_CHANGE_DEVS) | BIT(MD_SB_CHANGE_PENDING));
-       spin_unlock_irqrestore(&conf->device_lock, flags);
--      pr_crit("md/raid10:%s: Disk failure on %s, disabling device.\n"
-+      pr_crit("md/raid10:%s: Disk failure on %pg, disabling device.\n"
-               "md/raid10:%s: Operation continuing on %d devices.\n",
--              mdname(mddev), bdevname(rdev->bdev, b),
-+              mdname(mddev), rdev->bdev,
-               mdname(mddev), conf->geo.raid_disks - mddev->degraded);
- }
-@@ -1669,13 +1667,12 @@ static void print_conf(struct r10conf *conf)
-       /* This is only called with ->reconfix_mutex held, so
-        * rcu protection of rdev is not needed */
-       for (i = 0; i < conf->geo.raid_disks; i++) {
--              char b[BDEVNAME_SIZE];
-               rdev = conf->mirrors[i].rdev;
-               if (rdev)
--                      pr_debug(" disk %d, wo:%d, o:%d, dev:%s\n",
-+                      pr_debug(" disk %d, wo:%d, o:%d, dev:%pg\n",
-                                i, !test_bit(In_sync, &rdev->flags),
-                                !test_bit(Faulty, &rdev->flags),
--                               bdevname(rdev->bdev,b));
-+                               rdev->bdev);
-       }
- }
-@@ -2335,14 +2332,11 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
-       check_decay_read_errors(mddev, rdev);
-       atomic_inc(&rdev->read_errors);
-       if (atomic_read(&rdev->read_errors) > max_read_errors) {
--              char b[BDEVNAME_SIZE];
--              bdevname(rdev->bdev, b);
--
--              pr_notice("md/raid10:%s: %s: Raid device exceeded read_error threshold [cur %d:max %d]\n",
--                        mdname(mddev), b,
-+              pr_notice("md/raid10:%s: %pg: Raid device exceeded read_error threshold [cur %d:max %d]\n",
-+                        mdname(mddev), rdev->bdev,
-                         atomic_read(&rdev->read_errors), max_read_errors);
--              pr_notice("md/raid10:%s: %s: Failing raid device\n",
--                        mdname(mddev), b);
-+              pr_notice("md/raid10:%s: %pg: Failing raid device\n",
-+                        mdname(mddev), rdev->bdev);
-               md_error(mddev, rdev);
-               r10_bio->devs[r10_bio->read_slot].bio = IO_BLOCKED;
-               return;
-@@ -2412,8 +2406,6 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
-               /* write it back and re-read */
-               rcu_read_lock();
-               while (sl != r10_bio->read_slot) {
--                      char b[BDEVNAME_SIZE];
--
-                       if (sl==0)
-                               sl = conf->copies;
-                       sl--;
-@@ -2432,24 +2424,22 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
-                                            s, conf->tmppage, WRITE)
-                           == 0) {
-                               /* Well, this device is dead */
--                              pr_notice("md/raid10:%s: read correction write failed (%d sectors at %llu on %s)\n",
-+                              pr_notice("md/raid10:%s: read correction write failed (%d sectors at %llu on %pg)\n",
-                                         mdname(mddev), s,
-                                         (unsigned long long)(
-                                                 sect +
-                                                 choose_data_offset(r10_bio,
-                                                                    rdev)),
--                                        bdevname(rdev->bdev, b));
--                              pr_notice("md/raid10:%s: %s: failing drive\n",
-+                                        rdev->bdev);
-+                              pr_notice("md/raid10:%s: %pg: failing drive\n",
-                                         mdname(mddev),
--                                        bdevname(rdev->bdev, b));
-+                                        rdev->bdev);
-                       }
-                       rdev_dec_pending(rdev, mddev);
-                       rcu_read_lock();
-               }
-               sl = start;
-               while (sl != r10_bio->read_slot) {
--                      char b[BDEVNAME_SIZE];
--
-                       if (sl==0)
-                               sl = conf->copies;
-                       sl--;
-@@ -2469,23 +2459,23 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
-                                                READ)) {
-                       case 0:
-                               /* Well, this device is dead */
--                              pr_notice("md/raid10:%s: unable to read back corrected sectors (%d sectors at %llu on %s)\n",
-+                              pr_notice("md/raid10:%s: unable to read back corrected sectors (%d sectors at %llu on %pg)\n",
-                                      mdname(mddev), s,
-                                      (unsigned long long)(
-                                              sect +
-                                              choose_data_offset(r10_bio, rdev)),
--                                     bdevname(rdev->bdev, b));
--                              pr_notice("md/raid10:%s: %s: failing drive\n",
-+                                     rdev->bdev);
-+                              pr_notice("md/raid10:%s: %pg: failing drive\n",
-                                      mdname(mddev),
--                                     bdevname(rdev->bdev, b));
-+                                     rdev->bdev);
-                               break;
-                       case 1:
--                              pr_info("md/raid10:%s: read error corrected (%d sectors at %llu on %s)\n",
-+                              pr_info("md/raid10:%s: read error corrected (%d sectors at %llu on %pg)\n",
-                                      mdname(mddev), s,
-                                      (unsigned long long)(
-                                              sect +
-                                              choose_data_offset(r10_bio, rdev)),
--                                     bdevname(rdev->bdev, b));
-+                                     rdev->bdev);
-                               atomic_add(s, &rdev->corrected_errors);
-                       }
-diff --git a/drivers/md/raid5-cache.c b/drivers/md/raid5-cache.c
-index 4337ae0e6af2..3194bc64fca2 100644
---- a/drivers/md/raid5-cache.c
-+++ b/drivers/md/raid5-cache.c
-@@ -3067,11 +3067,10 @@ int r5l_init_log(struct r5conf *conf, struct md_rdev *rdev)
- {
-       struct request_queue *q = bdev_get_queue(rdev->bdev);
-       struct r5l_log *log;
--      char b[BDEVNAME_SIZE];
-       int ret;
--      pr_debug("md/raid:%s: using device %s as journal\n",
--               mdname(conf->mddev), bdevname(rdev->bdev, b));
-+      pr_debug("md/raid:%s: using device %pg as journal\n",
-+               mdname(conf->mddev), rdev->bdev);
-       if (PAGE_SIZE != 4096)
-               return -EINVAL;
-diff --git a/drivers/md/raid5-ppl.c b/drivers/md/raid5-ppl.c
-index d0f540296fe9..761fb9bab67a 100644
---- a/drivers/md/raid5-ppl.c
-+++ b/drivers/md/raid5-ppl.c
-@@ -807,7 +807,6 @@ static int ppl_recover_entry(struct ppl_log *log, struct ppl_header_entry *e,
-       int data_disks;
-       int i;
-       int ret = 0;
--      char b[BDEVNAME_SIZE];
-       unsigned int pp_size = le32_to_cpu(e->pp_size);
-       unsigned int data_size = le32_to_cpu(e->data_size);
-@@ -901,8 +900,8 @@ static int ppl_recover_entry(struct ppl_log *log, struct ppl_header_entry *e,
-                               break;
-                       }
--                      pr_debug("%s:%*s reading data member disk %s sector %llu\n",
--                               __func__, indent, "", bdevname(rdev->bdev, b),
-+                      pr_debug("%s:%*s reading data member disk %pg sector %llu\n",
-+                               __func__, indent, "", rdev->bdev,
-                                (unsigned long long)sector);
-                       if (!sync_page_io(rdev, sector, block_size, page2,
-                                       REQ_OP_READ, 0, false)) {
-@@ -946,10 +945,10 @@ static int ppl_recover_entry(struct ppl_log *log, struct ppl_header_entry *e,
-               parity_rdev = conf->disks[sh.pd_idx].rdev;
-               BUG_ON(parity_rdev->bdev->bd_dev != log->rdev->bdev->bd_dev);
--              pr_debug("%s:%*s write parity at sector %llu, disk %s\n",
-+              pr_debug("%s:%*s write parity at sector %llu, disk %pg\n",
-                        __func__, indent, "",
-                        (unsigned long long)parity_sector,
--                       bdevname(parity_rdev->bdev, b));
-+                       parity_rdev->bdev);
-               if (!sync_page_io(parity_rdev, parity_sector, block_size,
-                               page1, REQ_OP_WRITE, 0, false)) {
-                       pr_debug("%s:%*s parity write error!\n", __func__,
-@@ -1261,7 +1260,6 @@ void ppl_exit_log(struct r5conf *conf)
- static int ppl_validate_rdev(struct md_rdev *rdev)
- {
--      char b[BDEVNAME_SIZE];
-       int ppl_data_sectors;
-       int ppl_size_new;
-@@ -1278,8 +1276,8 @@ static int ppl_validate_rdev(struct md_rdev *rdev)
-                               RAID5_STRIPE_SECTORS((struct r5conf *)rdev->mddev->private));
-       if (ppl_data_sectors <= 0) {
--              pr_warn("md/raid:%s: PPL space too small on %s\n",
--                      mdname(rdev->mddev), bdevname(rdev->bdev, b));
-+              pr_warn("md/raid:%s: PPL space too small on %pg\n",
-+                      mdname(rdev->mddev), rdev->bdev);
-               return -ENOSPC;
-       }
-@@ -1289,16 +1287,16 @@ static int ppl_validate_rdev(struct md_rdev *rdev)
-            rdev->ppl.sector + ppl_size_new > rdev->data_offset) ||
-           (rdev->ppl.sector >= rdev->data_offset &&
-            rdev->data_offset + rdev->sectors > rdev->ppl.sector)) {
--              pr_warn("md/raid:%s: PPL space overlaps with data on %s\n",
--                      mdname(rdev->mddev), bdevname(rdev->bdev, b));
-+              pr_warn("md/raid:%s: PPL space overlaps with data on %pg\n",
-+                      mdname(rdev->mddev), rdev->bdev);
-               return -EINVAL;
-       }
-       if (!rdev->mddev->external &&
-           ((rdev->ppl.offset > 0 && rdev->ppl.offset < (rdev->sb_size >> 9)) ||
-            (rdev->ppl.offset <= 0 && rdev->ppl.offset + ppl_size_new > 0))) {
--              pr_warn("md/raid:%s: PPL space overlaps with superblock on %s\n",
--                      mdname(rdev->mddev), bdevname(rdev->bdev, b));
-+              pr_warn("md/raid:%s: PPL space overlaps with superblock on %pg\n",
-+                      mdname(rdev->mddev), rdev->bdev);
-               return -EINVAL;
-       }
-@@ -1468,14 +1466,13 @@ int ppl_modify_log(struct r5conf *conf, struct md_rdev *rdev, bool add)
-       struct ppl_conf *ppl_conf = conf->log_private;
-       struct ppl_log *log;
-       int ret = 0;
--      char b[BDEVNAME_SIZE];
-       if (!rdev)
-               return -EINVAL;
--      pr_debug("%s: disk: %d operation: %s dev: %s\n",
-+      pr_debug("%s: disk: %d operation: %s dev: %pg\n",
-                __func__, rdev->raid_disk, add ? "add" : "remove",
--               bdevname(rdev->bdev, b));
-+               rdev->bdev);
-       if (rdev->raid_disk < 0)
-               return 0;
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 0a941d62398f..ee0746fef417 100644
---- a/drivers/md/raid5.c
-+++ b/drivers/md/raid5.c
-@@ -2665,7 +2665,6 @@ static void raid5_end_read_request(struct bio * bi)
-       struct stripe_head *sh = bi->bi_private;
-       struct r5conf *conf = sh->raid_conf;
-       int disks = sh->disks, i;
--      char b[BDEVNAME_SIZE];
-       struct md_rdev *rdev = NULL;
-       sector_t s;
-@@ -2703,10 +2702,10 @@ static void raid5_end_read_request(struct bio * bi)
-                        * any error
-                        */
-                       pr_info_ratelimited(
--                              "md/raid:%s: read error corrected (%lu sectors at %llu on %s)\n",
-+                              "md/raid:%s: read error corrected (%lu sectors at %llu on %pg)\n",
-                               mdname(conf->mddev), RAID5_STRIPE_SECTORS(conf),
-                               (unsigned long long)s,
--                              bdevname(rdev->bdev, b));
-+                              rdev->bdev);
-                       atomic_add(RAID5_STRIPE_SECTORS(conf), &rdev->corrected_errors);
-                       clear_bit(R5_ReadError, &sh->dev[i].flags);
-                       clear_bit(R5_ReWrite, &sh->dev[i].flags);
-@@ -2723,7 +2722,6 @@ static void raid5_end_read_request(struct bio * bi)
-               if (atomic_read(&rdev->read_errors))
-                       atomic_set(&rdev->read_errors, 0);
-       } else {
--              const char *bdn = bdevname(rdev->bdev, b);
-               int retry = 0;
-               int set_bad = 0;
-@@ -2732,25 +2730,25 @@ static void raid5_end_read_request(struct bio * bi)
-                       atomic_inc(&rdev->read_errors);
-               if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
-                       pr_warn_ratelimited(
--                              "md/raid:%s: read error on replacement device (sector %llu on %s).\n",
-+                              "md/raid:%s: read error on replacement device (sector %llu on %pg).\n",
-                               mdname(conf->mddev),
-                               (unsigned long long)s,
--                              bdn);
-+                              rdev->bdev);
-               else if (conf->mddev->degraded >= conf->max_degraded) {
-                       set_bad = 1;
-                       pr_warn_ratelimited(
--                              "md/raid:%s: read error not correctable (sector %llu on %s).\n",
-+                              "md/raid:%s: read error not correctable (sector %llu on %pg).\n",
-                               mdname(conf->mddev),
-                               (unsigned long long)s,
--                              bdn);
-+                              rdev->bdev);
-               } else if (test_bit(R5_ReWrite, &sh->dev[i].flags)) {
-                       /* Oh, no!!! */
-                       set_bad = 1;
-                       pr_warn_ratelimited(
--                              "md/raid:%s: read error NOT corrected!! (sector %llu on %s).\n",
-+                              "md/raid:%s: read error NOT corrected!! (sector %llu on %pg).\n",
-                               mdname(conf->mddev),
-                               (unsigned long long)s,
--                              bdn);
-+                              rdev->bdev);
-               } else if (atomic_read(&rdev->read_errors)
-                        > conf->max_nr_stripes) {
-                       if (!test_bit(Faulty, &rdev->flags)) {
-@@ -2758,8 +2756,8 @@ static void raid5_end_read_request(struct bio * bi)
-                                   mdname(conf->mddev),
-                                   atomic_read(&rdev->read_errors),
-                                   conf->max_nr_stripes);
--                              pr_warn("md/raid:%s: Too many read errors, failing device %s.\n",
--                                  mdname(conf->mddev), bdn);
-+                              pr_warn("md/raid:%s: Too many read errors, failing device %pg.\n",
-+                                  mdname(conf->mddev), rdev->bdev);
-                       }
-               } else
-                       retry = 1;
-@@ -2872,13 +2870,12 @@ static void raid5_end_write_request(struct bio *bi)
- static void raid5_error(struct mddev *mddev, struct md_rdev *rdev)
- {
--      char b[BDEVNAME_SIZE];
-       struct r5conf *conf = mddev->private;
-       unsigned long flags;
-       pr_debug("raid456: error called\n");
--      pr_crit("md/raid:%s: Disk failure on %s, disabling device.\n",
--              mdname(mddev), bdevname(rdev->bdev, b));
-+      pr_crit("md/raid:%s: Disk failure on %pg, disabling device.\n",
-+              mdname(mddev), rdev->bdev);
-       spin_lock_irqsave(&conf->device_lock, flags);
-       set_bit(Faulty, &rdev->flags);
-@@ -7318,9 +7315,8 @@ static struct r5conf *setup_conf(struct mddev *mddev)
-               }
-               if (test_bit(In_sync, &rdev->flags)) {
--                      char b[BDEVNAME_SIZE];
--                      pr_info("md/raid:%s: device %s operational as raid disk %d\n",
--                              mdname(mddev), bdevname(rdev->bdev, b), raid_disk);
-+                      pr_info("md/raid:%s: device %pg operational as raid disk %d\n",
-+                              mdname(mddev), rdev->bdev, raid_disk);
-               } else if (rdev->saved_raid_disk != raid_disk)
-                       /* Cannot rely on bitmap to complete recovery */
-                       conf->fullsync = 1;
-@@ -7824,12 +7820,11 @@ static void print_raid5_conf (struct r5conf *conf)
-       rcu_read_lock();
-       for (i = 0; i < conf->raid_disks; i++) {
--              char b[BDEVNAME_SIZE];
-               rdev = rcu_dereference(conf->disks[i].rdev);
-               if (rdev)
--                      pr_debug(" disk %d, o:%d, dev:%s\n",
-+                      pr_debug(" disk %d, o:%d, dev:%pg\n",
-                              i, !test_bit(Faulty, &rdev->flags),
--                             bdevname(rdev->bdev, b));
-+                             rdev->bdev);
-       }
-       rcu_read_unlock();
- }
--- 
-2.35.1
-
diff --git a/queue-5.10/md-replace-role-magic-numbers-with-defined-constants.patch b/queue-5.10/md-replace-role-magic-numbers-with-defined-constants.patch
deleted file mode 100644 (file)
index 065eab6..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From 10459eb3e2eebfb11434219747c73bab16dbd4dc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 13:45:58 -0600
-Subject: md: Replace role magic numbers with defined constants
-
-From: David Sloan <david.sloan@eideticom.com>
-
-[ Upstream commit 9151ad5d8676a89cf1b6a4051037ab3ca077d938 ]
-
-There are several instances where magic numbers are used in md.c instead
-of the defined constants in md_p.h. This patch set improves code
-readability by replacing all occurrences of 0xffff, 0xfffe, and 0xfffd when
-relating to md roles with their equivalent defined constant.
-
-Signed-off-by: David Sloan <david.sloan@eideticom.com>
-Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
-Signed-off-by: Song Liu <song@kernel.org>
-Stable-dep-of: 1727fd5015d8 ("md: Replace snprintf with scnprintf")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/md/md.c | 11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index c5363d2310e9..1410c550c0ff 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -2674,11 +2674,11 @@ static bool does_sb_need_changing(struct mddev *mddev)
-       rdev_for_each(rdev, mddev) {
-               role = le16_to_cpu(sb->dev_roles[rdev->desc_nr]);
-               /* Device activated? */
--              if (role == 0xffff && rdev->raid_disk >=0 &&
-+              if (role == MD_DISK_ROLE_SPARE && rdev->raid_disk >= 0 &&
-                   !test_bit(Faulty, &rdev->flags))
-                       return true;
-               /* Device turned faulty? */
--              if (test_bit(Faulty, &rdev->flags) && (role < 0xfffd))
-+              if (test_bit(Faulty, &rdev->flags) && (role < MD_DISK_ROLE_MAX))
-                       return true;
-       }
-@@ -9638,7 +9638,7 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
-               role = le16_to_cpu(sb->dev_roles[rdev2->desc_nr]);
-               if (test_bit(Candidate, &rdev2->flags)) {
--                      if (role == 0xfffe) {
-+                      if (role == MD_DISK_ROLE_FAULTY) {
-                               pr_info("md: Removing Candidate device %s because add failed\n", bdevname(rdev2->bdev,b));
-                               md_kick_rdev_from_array(rdev2);
-                               continue;
-@@ -9651,7 +9651,7 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
-                       /*
-                        * got activated except reshape is happening.
-                        */
--                      if (rdev2->raid_disk == -1 && role != 0xffff &&
-+                      if (rdev2->raid_disk == -1 && role != MD_DISK_ROLE_SPARE &&
-                           !(le32_to_cpu(sb->feature_map) &
-                             MD_FEATURE_RESHAPE_ACTIVE)) {
-                               rdev2->saved_raid_disk = role;
-@@ -9668,7 +9668,8 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
-                        * as faulty. The recovery is performed by the
-                        * one who initiated the error.
-                        */
--                      if ((role == 0xfffe) || (role == 0xfffd)) {
-+                      if (role == MD_DISK_ROLE_FAULTY ||
-+                          role == MD_DISK_ROLE_JOURNAL) {
-                               md_error(mddev, rdev2);
-                               clear_bit(Blocked, &rdev2->flags);
-                       }
--- 
-2.35.1
-
index 416622a8151ff222dd07d3258bb0a11a3a14c419..119773574246631d85ee26a6fa4c9244c35d3b63 100644 (file)
@@ -1,4 +1,4 @@
-From 523ba87cb0a82486c3db217581501415d68c549a Mon Sep 17 00:00:00 2001
+From 712be03fb6d4cfae8b85c8bbc383e6465a2362b1 Mon Sep 17 00:00:00 2001
 From: Sasha Levin <sashal@kernel.org>
 Date: Tue, 23 Aug 2022 11:51:04 -0700
 Subject: md: Replace snprintf with scnprintf
@@ -49,23 +49,19 @@ Acked-by: Guoqing Jiang <guoqing.jiang@linux.dev>
 Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
 Signed-off-by: Song Liu <song@kernel.org>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- drivers/md/raid0.c | 2 +-
+ drivers/md/raid0.c |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
-index 4a80cf43304b..823ea5cca774 100644
 --- a/drivers/md/raid0.c
 +++ b/drivers/md/raid0.c
-@@ -47,7 +47,7 @@ static void dump_zones(struct mddev *mddev)
+@@ -48,7 +48,7 @@ static void dump_zones(struct mddev *mdd
                int len = 0;
  
                for (k = 0; k < conf->strip_zone[j].nb_dev; k++)
--                      len += snprintf(line+len, 200-len, "%s%pg", k?"/":"",
-+                      len += scnprintf(line+len, 200-len, "%s%pg", k?"/":"",
-                               conf->devlist[j * raid_disks + k]->bdev);
+-                      len += snprintf(line+len, 200-len, "%s%s", k?"/":"",
++                      len += scnprintf(line+len, 200-len, "%s%s", k?"/":"",
+                                       bdevname(conf->devlist[j*raid_disks
+                                                              + k]->bdev, b));
                pr_debug("md: zone%d=[%s]\n", j, line);
--- 
-2.35.1
-
index 45c2d2dce51e74497b2f5e8c89be0bc19a59f413..82b3075425823237929214d5aa0526c23c3e00c1 100644 (file)
@@ -22,14 +22,12 @@ Link: https://lore.kernel.org/r/cd17c240231e059d2fc07c17dfe555d548b917eb.1662631
 Signed-off-by: Leon Romanovsky <leon@kernel.org>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- drivers/infiniband/core/cm.c | 14 +++++++-------
+ drivers/infiniband/core/cm.c |   14 +++++++-------
  1 file changed, 7 insertions(+), 7 deletions(-)
 
-diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
-index 3cc7a23fa69f..3133b6be6cab 100644
 --- a/drivers/infiniband/core/cm.c
 +++ b/drivers/infiniband/core/cm.c
-@@ -1643,14 +1643,13 @@ static void cm_path_set_rec_type(struct ib_device *ib_device, u8 port_num,
+@@ -1643,14 +1643,13 @@ static void cm_path_set_rec_type(struct
  
  static void cm_format_path_lid_from_req(struct cm_req_msg *req_msg,
                                        struct sa_path_rec *primary_path,
@@ -47,7 +45,7 @@ index 3cc7a23fa69f..3133b6be6cab 100644
                sa_path_set_slid(primary_path,
                                 IBA_GET(CM_REQ_PRIMARY_REMOTE_PORT_LID,
                                         req_msg));
-@@ -1687,7 +1686,8 @@ static void cm_format_path_lid_from_req(struct cm_req_msg *req_msg,
+@@ -1687,7 +1686,8 @@ static void cm_format_path_lid_from_req(
  
  static void cm_format_paths_from_req(struct cm_req_msg *req_msg,
                                     struct sa_path_rec *primary_path,
@@ -57,7 +55,7 @@ index 3cc7a23fa69f..3133b6be6cab 100644
  {
        primary_path->dgid =
                *IBA_GET_MEM_PTR(CM_REQ_PRIMARY_LOCAL_PORT_GID, req_msg);
-@@ -1745,7 +1745,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg,
+@@ -1745,7 +1745,7 @@ static void cm_format_paths_from_req(str
                if (sa_path_is_roce(alt_path))
                        alt_path->roce.route_resolved = false;
        }
@@ -66,7 +64,7 @@ index 3cc7a23fa69f..3133b6be6cab 100644
  }
  
  static u16 cm_get_bth_pkey(struct cm_work *work)
-@@ -2163,7 +2163,7 @@ static int cm_req_handler(struct cm_work *work)
+@@ -2163,7 +2163,7 @@ static int cm_req_handler(struct cm_work
        if (cm_req_has_alt_path(req_msg))
                work->path[1].rec_type = work->path[0].rec_type;
        cm_format_paths_from_req(req_msg, &work->path[0],
@@ -75,6 +73,3 @@ index 3cc7a23fa69f..3133b6be6cab 100644
        if (cm_id_priv->av.ah_attr.type == RDMA_AH_ATTR_TYPE_ROCE)
                sa_path_set_dmac(&work->path[0],
                                 cm_id_priv->av.ah_attr.roce.dmac);
--- 
-2.35.1
-
index d41ef2193e96e6a294b9fba047726b8a3689c1bc..48f81934be0960e9132a39b60706ac47529198c0 100644 (file)
@@ -263,11 +263,6 @@ ata-fix-ata_id_has_devslp.patch
 ata-fix-ata_id_has_ncq_autosense.patch
 ata-fix-ata_id_has_dipm.patch
 mtd-rawnand-meson-fix-bit-map-use-in-meson_nfc_ecc_c.patch
-md-raid1-rename-print_msg-with-r1bio_existed.patch
-md-add-support-for-req_nowait.patch
-md-raid5-add-__rcu-annotation-to-struct-disk_info.patch
-md-replace-role-magic-numbers-with-defined-constants.patch
-md-remove-most-calls-to-bdevname.patch
 md-replace-snprintf-with-scnprintf.patch
 md-raid5-ensure-stripe_fill-happens-on-non-read-io-w.patch
 rdma-cm-use-slid-in-the-work-completion-as-the-dlid-.patch