Re: [PATCH 1/3] md: restore bitmap/location to fix wrong bitmap offset while growing
kernel test robot <[email protected]>
| Newsgroups | gmane.linux.raid |
|---|---|
| Message-ID | <[email protected]> |
Hi Su, kernel test robot noticed the following build errors: [auto build test ERROR on linus/master] [also build test ERROR on v7.0-rc2 next-20260305] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Su-Yue/md-restore-bitmap-location-to-fix-wrong-bitmap-offset-while-growing/20260303-114108 base: linus/master patch link: https://lore.kernel.org/r/20260303033731.83885-2-glass.su%40suse.com patch subject: [PATCH 1/3] md: restore bitmap/location to fix wrong bitmap offset while growing config: i386-randconfig-051-20260305 (https://download.01.org/0day-ci/archive/20260306/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260306/[email protected]/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All errors (new ones prefixed by >>): ld: drivers/md/md.o: in function `md_alloc': >> drivers/md/md.c:6376:(.text+0xb36c): undefined reference to `md_sysfs_create_common_group' vim +6376 drivers/md/md.c 6276 6277 struct mddev *md_alloc(dev_t dev, char *name) 6278 { 6279 /* 6280 * If dev is zero, name is the name of a device to allocate with 6281 * an arbitrary minor number. It will be "md_???" 6282 * If dev is non-zero it must be a device number with a MAJOR of 6283 * MD_MAJOR or mdp_major. In this case, if "name" is NULL, then 6284 * the device is being created by opening a node in /dev. 6285 * If "name" is not NULL, the device is being created by 6286 * writing to /sys/module/md_mod/parameters/new_array. 6287 */ 6288 static DEFINE_MUTEX(disks_mutex); 6289 struct mddev *mddev; 6290 struct gendisk *disk; 6291 int partitioned; 6292 int shift; 6293 int unit; 6294 int error; 6295 6296 /* 6297 * Wait for any previous instance of this device to be completely 6298 * removed (mddev_delayed_delete). 6299 */ 6300 flush_workqueue(md_misc_wq); 6301 6302 mutex_lock(&disks_mutex); 6303 mddev = mddev_alloc(dev); 6304 if (IS_ERR(mddev)) { 6305 error = PTR_ERR(mddev); 6306 goto out_unlock; 6307 } 6308 6309 partitioned = (MAJOR(mddev->unit) != MD_MAJOR); 6310 shift = partitioned ? MdpMinorShift : 0; 6311 unit = MINOR(mddev->unit) >> shift; 6312 6313 if (name && !dev) { 6314 /* Need to ensure that 'name' is not a duplicate. 6315 */ 6316 struct mddev *mddev2; 6317 spin_lock(&all_mddevs_lock); 6318 6319 list_for_each_entry(mddev2, &all_mddevs, all_mddevs) 6320 if (mddev2->gendisk && 6321 strcmp(mddev2->gendisk->disk_name, name) == 0) { 6322 spin_unlock(&all_mddevs_lock); 6323 error = -EEXIST; 6324 goto out_free_mddev; 6325 } 6326 spin_unlock(&all_mddevs_lock); 6327 } 6328 if (name && dev) 6329 /* 6330 * Creating /dev/mdNNN via "newarray", so adjust hold_active. 6331 */ 6332 mddev->hold_active = UNTIL_STOP; 6333 6334 disk = blk_alloc_disk(NULL, NUMA_NO_NODE); 6335 if (IS_ERR(disk)) { 6336 error = PTR_ERR(disk); 6337 goto out_free_mddev; 6338 } 6339 6340 disk->major = MAJOR(mddev->unit); 6341 disk->first_minor = unit << shift; 6342 disk->minors = 1 << shift; 6343 if (name) 6344 strcpy(disk->disk_name, name); 6345 else if (partitioned) 6346 sprintf(disk->disk_name, "md_d%d", unit); 6347 else 6348 sprintf(disk->disk_name, "md%d", unit); 6349 disk->fops = &md_fops; 6350 disk->private_data = mddev; 6351 6352 disk->events |= DISK_EVENT_MEDIA_CHANGE; 6353 mddev->gendisk = disk; 6354 error = add_disk(disk); 6355 if (error) 6356 goto out_put_disk; 6357 6358 kobject_init(&mddev->kobj, &md_ktype); 6359 error = kobject_add(&mddev->kobj, &disk_to_dev(disk)->kobj, "%s", "md"); 6360 if (error) { 6361 /* 6362 * The disk is already live at this point. Clear the hold flag 6363 * and let mddev_put take care of the deletion, as it isn't any 6364 * different from a normal close on last release now. 6365 */ 6366 mddev->hold_active = 0; 6367 mutex_unlock(&disks_mutex); 6368 mddev_put(mddev); 6369 return ERR_PTR(error); 6370 } 6371 6372 /* 6373 * md_sysfs_remove_common_group is not needed because mddev_delayed_delete 6374 * calls kobject_put(&mddev->kobj) if mddev is to be deleted. 6375 */ > 6376 if (md_sysfs_create_common_group(mddev)) 6377 pr_warn("md: cannot register common bitmap attributes for %s\n", 6378 mdname(mddev)); 6379 6380 kobject_uevent(&mddev->kobj, KOBJ_ADD); 6381 mddev->sysfs_state = sysfs_get_dirent_safe(mddev->kobj.sd, "array_state"); 6382 mddev->sysfs_level = sysfs_get_dirent_safe(mddev->kobj.sd, "level"); 6383 mutex_unlock(&disks_mutex); 6384 return mddev; 6385 6386 out_put_disk: 6387 put_disk(disk); 6388 out_free_mddev: 6389 mddev_free(mddev); 6390 out_unlock: 6391 mutex_unlock(&disks_mutex); 6392 return ERR_PTR(error); 6393 } 6394 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki