[mcgrof-next:20211011-for-axboe-add-disk-error-handling 24/24] drivers/md/md.c:5705:2: warning: ignoring return value of function declared with 'warn_unused_result' attribute

From: kernel test robot
Date: Mon Oct 18 2021 - 14:41:36 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20211011-for-axboe-add-disk-error-handling
head: 53099761729ca16d3bb36db8a8cc526f4eb08f28
commit: 53099761729ca16d3bb36db8a8cc526f4eb08f28 [24/24] block: add __must_check for *add_disk*() callers
config: hexagon-randconfig-r041-20211019 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d245f2e8597bfb52c34810a328d42b990e4af1a4)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?id=53099761729ca16d3bb36db8a8cc526f4eb08f28
git remote add mcgrof-next https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
git fetch --no-tags mcgrof-next 20211011-for-axboe-add-disk-error-handling
git checkout 53099761729ca16d3bb36db8a8cc526f4eb08f28
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/md/md.c:5705:2: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result]
add_disk(disk);
^~~~~~~~ ~~~~
1 warning generated.


vim +/warn_unused_result +5705 drivers/md/md.c

a415c0f1062791 NeilBrown 2017-06-05 5620
efeb53c0e57213 NeilBrown 2009-01-09 5621 static int md_alloc(dev_t dev, char *name)
^1da177e4c3f41 Linus Torvalds 2005-04-16 5622 {
039b7225e6e987 NeilBrown 2017-04-12 5623 /*
039b7225e6e987 NeilBrown 2017-04-12 5624 * If dev is zero, name is the name of a device to allocate with
039b7225e6e987 NeilBrown 2017-04-12 5625 * an arbitrary minor number. It will be "md_???"
039b7225e6e987 NeilBrown 2017-04-12 5626 * If dev is non-zero it must be a device number with a MAJOR of
039b7225e6e987 NeilBrown 2017-04-12 5627 * MD_MAJOR or mdp_major. In this case, if "name" is NULL, then
039b7225e6e987 NeilBrown 2017-04-12 5628 * the device is being created by opening a node in /dev.
039b7225e6e987 NeilBrown 2017-04-12 5629 * If "name" is not NULL, the device is being created by
039b7225e6e987 NeilBrown 2017-04-12 5630 * writing to /sys/module/md_mod/parameters/new_array.
039b7225e6e987 NeilBrown 2017-04-12 5631 */
48c9c27b8bcd2a Arjan van de Ven 2006-03-27 5632 static DEFINE_MUTEX(disks_mutex);
0d809b3837a0be Christoph Hellwig 2021-04-12 5633 struct mddev *mddev;
^1da177e4c3f41 Linus Torvalds 2005-04-16 5634 struct gendisk *disk;
efeb53c0e57213 NeilBrown 2009-01-09 5635 int partitioned;
efeb53c0e57213 NeilBrown 2009-01-09 5636 int shift;
efeb53c0e57213 NeilBrown 2009-01-09 5637 int unit;
3830c62fef49f8 Greg Kroah-Hartman 2007-12-17 5638 int error ;
^1da177e4c3f41 Linus Torvalds 2005-04-16 5639
0d809b3837a0be Christoph Hellwig 2021-04-12 5640 /*
0d809b3837a0be Christoph Hellwig 2021-04-12 5641 * Wait for any previous instance of this device to be completely
0d809b3837a0be Christoph Hellwig 2021-04-12 5642 * removed (mddev_delayed_delete).
d3374825ce57ba NeilBrown 2009-01-09 5643 */
e804ac780e2f01 Tejun Heo 2010-10-15 5644 flush_workqueue(md_misc_wq);
d3374825ce57ba NeilBrown 2009-01-09 5645
48c9c27b8bcd2a Arjan van de Ven 2006-03-27 5646 mutex_lock(&disks_mutex);
0d809b3837a0be Christoph Hellwig 2021-04-12 5647 mddev = mddev_alloc(dev);
0d809b3837a0be Christoph Hellwig 2021-04-12 5648 if (IS_ERR(mddev)) {
0d809b3837a0be Christoph Hellwig 2021-04-12 5649 mutex_unlock(&disks_mutex);
0d809b3837a0be Christoph Hellwig 2021-04-12 5650 return PTR_ERR(mddev);
0d809b3837a0be Christoph Hellwig 2021-04-12 5651 }
0d809b3837a0be Christoph Hellwig 2021-04-12 5652
0d809b3837a0be Christoph Hellwig 2021-04-12 5653 partitioned = (MAJOR(mddev->unit) != MD_MAJOR);
0d809b3837a0be Christoph Hellwig 2021-04-12 5654 shift = partitioned ? MdpMinorShift : 0;
0d809b3837a0be Christoph Hellwig 2021-04-12 5655 unit = MINOR(mddev->unit) >> shift;
efeb53c0e57213 NeilBrown 2009-01-09 5656
039b7225e6e987 NeilBrown 2017-04-12 5657 if (name && !dev) {
efeb53c0e57213 NeilBrown 2009-01-09 5658 /* Need to ensure that 'name' is not a duplicate.
efeb53c0e57213 NeilBrown 2009-01-09 5659 */
fd01b88c75a718 NeilBrown 2011-10-11 5660 struct mddev *mddev2;
efeb53c0e57213 NeilBrown 2009-01-09 5661 spin_lock(&all_mddevs_lock);
efeb53c0e57213 NeilBrown 2009-01-09 5662
efeb53c0e57213 NeilBrown 2009-01-09 5663 list_for_each_entry(mddev2, &all_mddevs, all_mddevs)
efeb53c0e57213 NeilBrown 2009-01-09 5664 if (mddev2->gendisk &&
efeb53c0e57213 NeilBrown 2009-01-09 5665 strcmp(mddev2->gendisk->disk_name, name) == 0) {
efeb53c0e57213 NeilBrown 2009-01-09 5666 spin_unlock(&all_mddevs_lock);
0d809b3837a0be Christoph Hellwig 2021-04-12 5667 error = -EEXIST;
0909dc448c98ed NeilBrown 2009-07-01 5668 goto abort;
efeb53c0e57213 NeilBrown 2009-01-09 5669 }
efeb53c0e57213 NeilBrown 2009-01-09 5670 spin_unlock(&all_mddevs_lock);
^1da177e4c3f41 Linus Torvalds 2005-04-16 5671 }
039b7225e6e987 NeilBrown 2017-04-12 5672 if (name && dev)
039b7225e6e987 NeilBrown 2017-04-12 5673 /*
039b7225e6e987 NeilBrown 2017-04-12 5674 * Creating /dev/mdNNN via "newarray", so adjust hold_active.
039b7225e6e987 NeilBrown 2017-04-12 5675 */
039b7225e6e987 NeilBrown 2017-04-12 5676 mddev->hold_active = UNTIL_STOP;
8b76539823d715 NeilBrown 2009-01-09 5677
0909dc448c98ed NeilBrown 2009-07-01 5678 error = -ENOMEM;
0f1d2e0643c544 Christoph Hellwig 2021-05-21 5679 disk = blk_alloc_disk(NUMA_NO_NODE);
0f1d2e0643c544 Christoph Hellwig 2021-05-21 5680 if (!disk)
0909dc448c98ed NeilBrown 2009-07-01 5681 goto abort;
409c57f3801701 NeilBrown 2009-03-31 5682
efeb53c0e57213 NeilBrown 2009-01-09 5683 disk->major = MAJOR(mddev->unit);
^1da177e4c3f41 Linus Torvalds 2005-04-16 5684 disk->first_minor = unit << shift;
0f1d2e0643c544 Christoph Hellwig 2021-05-21 5685 disk->minors = 1 << shift;
efeb53c0e57213 NeilBrown 2009-01-09 5686 if (name)
efeb53c0e57213 NeilBrown 2009-01-09 5687 strcpy(disk->disk_name, name);
efeb53c0e57213 NeilBrown 2009-01-09 5688 else if (partitioned)
^1da177e4c3f41 Linus Torvalds 2005-04-16 5689 sprintf(disk->disk_name, "md_d%d", unit);
ce7b0f46bbf4bf Greg Kroah-Hartman 2005-06-20 5690 else
^1da177e4c3f41 Linus Torvalds 2005-04-16 5691 sprintf(disk->disk_name, "md%d", unit);
^1da177e4c3f41 Linus Torvalds 2005-04-16 5692 disk->fops = &md_fops;
^1da177e4c3f41 Linus Torvalds 2005-04-16 5693 disk->private_data = mddev;
0f1d2e0643c544 Christoph Hellwig 2021-05-21 5694
0f1d2e0643c544 Christoph Hellwig 2021-05-21 5695 mddev->queue = disk->queue;
0f1d2e0643c544 Christoph Hellwig 2021-05-21 5696 blk_set_stacking_limits(&mddev->queue->limits);
56883a7ec85f5b Jens Axboe 2016-03-30 5697 blk_queue_write_cache(mddev->queue, true, true);
92850bbd712287 NeilBrown 2008-10-21 5698 /* Allow extended partitions. This makes the
d3374825ce57ba NeilBrown 2009-01-09 5699 * 'mdp' device redundant, but we can't really
92850bbd712287 NeilBrown 2008-10-21 5700 * remove it now.
92850bbd712287 NeilBrown 2008-10-21 5701 */
92850bbd712287 NeilBrown 2008-10-21 5702 disk->flags |= GENHD_FL_EXT_DEVT;
a564e23f0f9975 Christoph Hellwig 2020-07-08 5703 disk->events |= DISK_EVENT_MEDIA_CHANGE;
^1da177e4c3f41 Linus Torvalds 2005-04-16 5704 mddev->gendisk = disk;
b0140891a8cea3 NeilBrown 2011-05-10 @5705 add_disk(disk);
b0140891a8cea3 NeilBrown 2011-05-10 5706
28dec870aaf704 Kent Overstreet 2018-06-07 5707 error = kobject_add(&mddev->kobj, &disk_to_dev(disk)->kobj, "%s", "md");
0909dc448c98ed NeilBrown 2009-07-01 5708 if (error) {
0909dc448c98ed NeilBrown 2009-07-01 5709 /* This isn't possible, but as kobject_init_and_add is marked
0909dc448c98ed NeilBrown 2009-07-01 5710 * __must_check, we must do something with the result
0909dc448c98ed NeilBrown 2009-07-01 5711 */
9d48739ef19aa8 NeilBrown 2016-11-02 5712 pr_debug("md: cannot register %s/md - name in use\n",
5e55e2f5fc95b3 NeilBrown 2007-03-26 5713 disk->disk_name);
0909dc448c98ed NeilBrown 2009-07-01 5714 error = 0;
0909dc448c98ed NeilBrown 2009-07-01 5715 }
00bcb4ac7ee7e5 NeilBrown 2010-06-01 5716 if (mddev->kobj.sd &&
00bcb4ac7ee7e5 NeilBrown 2010-06-01 5717 sysfs_create_group(&mddev->kobj, &md_bitmap_group))
9d48739ef19aa8 NeilBrown 2016-11-02 5718 pr_debug("pointless warning\n");
0909dc448c98ed NeilBrown 2009-07-01 5719 abort:
0909dc448c98ed NeilBrown 2009-07-01 5720 mutex_unlock(&disks_mutex);
00bcb4ac7ee7e5 NeilBrown 2010-06-01 5721 if (!error && mddev->kobj.sd) {
3830c62fef49f8 Greg Kroah-Hartman 2007-12-17 5722 kobject_uevent(&mddev->kobj, KOBJ_ADD);
00bcb4ac7ee7e5 NeilBrown 2010-06-01 5723 mddev->sysfs_state = sysfs_get_dirent_safe(mddev->kobj.sd, "array_state");
e1a86dbbbd6a77 Junxiao Bi 2020-07-14 5724 mddev->sysfs_level = sysfs_get_dirent_safe(mddev->kobj.sd, "level");
b62b75905d571c NeilBrown 2008-10-21 5725 }
d3374825ce57ba NeilBrown 2009-01-09 5726 mddev_put(mddev);
0909dc448c98ed NeilBrown 2009-07-01 5727 return error;
efeb53c0e57213 NeilBrown 2009-01-09 5728 }
efeb53c0e57213 NeilBrown 2009-01-09 5729

:::::: The code at line 5705 was first introduced by commit
:::::: b0140891a8cea36469f58d23859e599b1122bd37 md: Fix race when creating a new md device.

:::::: TO: NeilBrown <neilb@xxxxxxx>
:::::: CC: NeilBrown <neilb@xxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip