* [koverstreet-bcachefs:bcachefs-testing 36/36] fs/bcachefs/init/dev.c:978:5: warning: stack frame size (1040) exceeds limit (1024) in 'bch2_dev_add'
@ 2026-04-07 3:54 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-04-07 3:54 UTC (permalink / raw)
To: Kent Overstreet; +Cc: llvm, oe-kbuild-all
tree: https://github.com/koverstreet/bcachefs bcachefs-testing
head: 58bb946d535130188a8558ac82889d1daa2ad56b
commit: 58bb946d535130188a8558ac82889d1daa2ad56b [36/36] bcachefs: record device serial number in superblock
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20260404/202604041202.bKcXxzJY-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260404/202604041202.bKcXxzJY-lkp@intel.com/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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604041202.bKcXxzJY-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/bcachefs/init/dev.c:978:5: warning: stack frame size (1040) exceeds limit (1024) in 'bch2_dev_add' [-Wframe-larger-than]
978 | int bch2_dev_add(struct bch_fs *c, const char *path, struct printbuf *err)
| ^
1 warning generated.
vim +/bch2_dev_add +978 fs/bcachefs/init/dev.c
bf25974be5b42c Kent Overstreet 2025-10-04 976
bf25974be5b42c Kent Overstreet 2025-10-04 977 /* Add new device to running filesystem: */
bf25974be5b42c Kent Overstreet 2025-10-04 @978 int bch2_dev_add(struct bch_fs *c, const char *path, struct printbuf *err)
bf25974be5b42c Kent Overstreet 2025-10-04 979 {
bf25974be5b42c Kent Overstreet 2025-10-04 980 int ret = 0;
bf25974be5b42c Kent Overstreet 2025-10-04 981
f5a0454134f4f4 Kent Overstreet 2026-01-07 982 struct bch_opts opts = bch2_opts_empty();
f5a0454134f4f4 Kent Overstreet 2026-01-07 983 struct bch_sb_handle sb __cleanup(bch2_free_super) = {};
bf25974be5b42c Kent Overstreet 2025-10-04 984 ret = bch2_read_super(path, &opts, &sb);
bf25974be5b42c Kent Overstreet 2025-10-04 985 if (ret) {
bf25974be5b42c Kent Overstreet 2025-10-04 986 prt_printf(err, "error reading superblock: %s\n", bch2_err_str(ret));
f5a0454134f4f4 Kent Overstreet 2026-01-07 987 return ret;
bf25974be5b42c Kent Overstreet 2025-10-04 988 }
bf25974be5b42c Kent Overstreet 2025-10-04 989
bf25974be5b42c Kent Overstreet 2025-10-04 990 struct bch_member dev_mi = bch2_sb_member_get(sb.sb, sb.sb->dev_idx);
bf25974be5b42c Kent Overstreet 2025-10-04 991
f5a0454134f4f4 Kent Overstreet 2026-01-07 992 CLASS(printbuf, label)();
bf25974be5b42c Kent Overstreet 2025-10-04 993 if (BCH_MEMBER_GROUP(&dev_mi)) {
bf25974be5b42c Kent Overstreet 2025-10-04 994 bch2_disk_path_to_text_sb(&label, sb.sb, BCH_MEMBER_GROUP(&dev_mi) - 1);
f5a0454134f4f4 Kent Overstreet 2026-01-07 995 if (label.allocation_failure)
f5a0454134f4f4 Kent Overstreet 2026-01-07 996 return -ENOMEM;
bf25974be5b42c Kent Overstreet 2025-10-04 997 }
bf25974be5b42c Kent Overstreet 2025-10-04 998
bf25974be5b42c Kent Overstreet 2025-10-04 999 if (list_empty(&c->list)) {
bf25974be5b42c Kent Overstreet 2025-10-04 1000 scoped_guard(mutex, &bch2_fs_list_lock) {
bf25974be5b42c Kent Overstreet 2025-10-04 1001 if (__bch2_uuid_to_fs(c->sb.uuid))
bf25974be5b42c Kent Overstreet 2025-10-04 1002 ret = bch_err_throw(c, filesystem_uuid_already_open);
bf25974be5b42c Kent Overstreet 2025-10-04 1003 else
bf25974be5b42c Kent Overstreet 2025-10-04 1004 list_add(&c->list, &bch2_fs_list);
bf25974be5b42c Kent Overstreet 2025-10-04 1005 }
bf25974be5b42c Kent Overstreet 2025-10-04 1006
bf25974be5b42c Kent Overstreet 2025-10-04 1007 if (ret) {
bf25974be5b42c Kent Overstreet 2025-10-04 1008 prt_printf(err, "cannot go multidevice: filesystem UUID already open\n");
f5a0454134f4f4 Kent Overstreet 2026-01-07 1009 return ret;
bf25974be5b42c Kent Overstreet 2025-10-04 1010 }
bf25974be5b42c Kent Overstreet 2025-10-04 1011 }
bf25974be5b42c Kent Overstreet 2025-10-04 1012
f5a0454134f4f4 Kent Overstreet 2026-01-07 1013 try(bch2_dev_may_add(sb.sb, c));
bf25974be5b42c Kent Overstreet 2025-10-04 1014
f5a0454134f4f4 Kent Overstreet 2026-01-07 1015 struct bch_dev *ca = __bch2_dev_alloc(c, &dev_mi);
f5a0454134f4f4 Kent Overstreet 2026-01-07 1016 if (!ca)
f5a0454134f4f4 Kent Overstreet 2026-01-07 1017 return -ENOMEM;
bf25974be5b42c Kent Overstreet 2025-10-04 1018
2d5b91710aa7ad Kent Overstreet 2025-11-10 1019 ret = __bch2_dev_attach_bdev(c, ca, &sb, err);
bf25974be5b42c Kent Overstreet 2025-10-04 1020 if (ret)
bf25974be5b42c Kent Overstreet 2025-10-04 1021 goto err;
bf25974be5b42c Kent Overstreet 2025-10-04 1022
b5bc9e176a2cdf Kent Overstreet 2025-11-13 1023 struct reconcile_scan s = { .type = RECONCILE_SCAN_pending };
463dd674455875 Kent Overstreet 2025-10-27 1024 if (test_bit(BCH_FS_started, &c->flags)) {
463dd674455875 Kent Overstreet 2025-10-27 1025 /*
463dd674455875 Kent Overstreet 2025-10-27 1026 * Technically incorrect, but 'bcachefs image update' is the
463dd674455875 Kent Overstreet 2025-10-27 1027 * only thing that adds a device to a not-started filesystem:
463dd674455875 Kent Overstreet 2025-10-27 1028 */
581f7e27bc9728 Kent Overstreet 2025-11-12 1029 try(bch2_set_reconcile_needs_scan(c, s, false));
463dd674455875 Kent Overstreet 2025-10-27 1030 }
463dd674455875 Kent Overstreet 2025-10-27 1031
bf25974be5b42c Kent Overstreet 2025-10-04 1032 scoped_guard(rwsem_write, &c->state_lock) {
84968c2bb32fef Kent Overstreet 2026-01-07 1033 scoped_guard(memalloc_flags, PF_MEMALLOC_NOFS) {
84968c2bb32fef Kent Overstreet 2026-01-07 1034 guard(mutex)(&c->sb_lock);
bf25974be5b42c Kent Overstreet 2025-10-04 1035 SET_BCH_SB_MULTI_DEVICE(c->disk_sb.sb, true);
bf25974be5b42c Kent Overstreet 2025-10-04 1036
bf25974be5b42c Kent Overstreet 2025-10-04 1037 ret = bch2_sb_from_fs(c, ca);
bf25974be5b42c Kent Overstreet 2025-10-04 1038 if (ret) {
bf25974be5b42c Kent Overstreet 2025-10-04 1039 prt_printf(err, "error setting up new superblock: %s\n", bch2_err_str(ret));
bf25974be5b42c Kent Overstreet 2025-10-04 1040 goto err;
bf25974be5b42c Kent Overstreet 2025-10-04 1041 }
bf25974be5b42c Kent Overstreet 2025-10-04 1042
bf25974be5b42c Kent Overstreet 2025-10-04 1043 if (dynamic_fault("bcachefs:add:no_slot"))
bf25974be5b42c Kent Overstreet 2025-10-04 1044 goto err;
bf25974be5b42c Kent Overstreet 2025-10-04 1045
bf25974be5b42c Kent Overstreet 2025-10-04 1046 ret = bch2_sb_member_alloc(c);
bf25974be5b42c Kent Overstreet 2025-10-04 1047 if (ret < 0) {
bf25974be5b42c Kent Overstreet 2025-10-04 1048 prt_printf(err, "error allocating superblock member slot: %s\n", bch2_err_str(ret));
bf25974be5b42c Kent Overstreet 2025-10-04 1049 goto err;
bf25974be5b42c Kent Overstreet 2025-10-04 1050 }
bf25974be5b42c Kent Overstreet 2025-10-04 1051 unsigned dev_idx = ret;
bf25974be5b42c Kent Overstreet 2025-10-04 1052 ret = 0;
bf25974be5b42c Kent Overstreet 2025-10-04 1053
bf25974be5b42c Kent Overstreet 2025-10-04 1054 /* success: */
bf25974be5b42c Kent Overstreet 2025-10-04 1055
bf25974be5b42c Kent Overstreet 2025-10-04 1056 dev_mi.last_mount = cpu_to_le64(ktime_get_real_seconds());
bf25974be5b42c Kent Overstreet 2025-10-04 1057 *bch2_members_v2_get_mut(c->disk_sb.sb, dev_idx) = dev_mi;
bf25974be5b42c Kent Overstreet 2025-10-04 1058
bf25974be5b42c Kent Overstreet 2025-10-04 1059 ca->disk_sb.sb->dev_idx = dev_idx;
bf25974be5b42c Kent Overstreet 2025-10-04 1060 bch2_dev_attach(c, ca, dev_idx);
bf25974be5b42c Kent Overstreet 2025-10-04 1061
f08ffce1e114f9 Kent Overstreet 2025-11-29 1062 set_bit(ca->dev_idx, c->devs_online.d);
bf25974be5b42c Kent Overstreet 2025-10-04 1063
bf25974be5b42c Kent Overstreet 2025-10-04 1064 if (BCH_MEMBER_GROUP(&dev_mi)) {
bf25974be5b42c Kent Overstreet 2025-10-04 1065 ret = __bch2_dev_group_set(c, ca, label.buf);
bf25974be5b42c Kent Overstreet 2025-10-04 1066 prt_printf(err, "error creating new label: %s\n", bch2_err_str(ret));
bf25974be5b42c Kent Overstreet 2025-10-04 1067 if (ret)
bf25974be5b42c Kent Overstreet 2025-10-04 1068 goto err_late;
bf25974be5b42c Kent Overstreet 2025-10-04 1069 }
bf25974be5b42c Kent Overstreet 2025-10-04 1070
e12a4b5e98b5a2 Kent Overstreet 2025-11-26 1071
e12a4b5e98b5a2 Kent Overstreet 2025-11-26 1072 bool write_sb = false;
e12a4b5e98b5a2 Kent Overstreet 2025-11-26 1073 __bch2_dev_mi_field_upgrades(c, ca, &write_sb);
e12a4b5e98b5a2 Kent Overstreet 2025-11-26 1074
bf25974be5b42c Kent Overstreet 2025-10-04 1075 bch2_write_super(c);
bf25974be5b42c Kent Overstreet 2025-10-04 1076 }
bf25974be5b42c Kent Overstreet 2025-10-04 1077
bf25974be5b42c Kent Overstreet 2025-10-04 1078 ret = bch2_dev_usage_init(ca, false);
bf25974be5b42c Kent Overstreet 2025-10-04 1079 if (ret)
bf25974be5b42c Kent Overstreet 2025-10-04 1080 goto err_late;
bf25974be5b42c Kent Overstreet 2025-10-04 1081
bf25974be5b42c Kent Overstreet 2025-10-04 1082 if (test_bit(BCH_FS_started, &c->flags)) {
bf25974be5b42c Kent Overstreet 2025-10-04 1083 ret = bch2_trans_mark_dev_sb(c, ca, BTREE_TRIGGER_transactional);
bf25974be5b42c Kent Overstreet 2025-10-04 1084 if (ret) {
bf25974be5b42c Kent Overstreet 2025-10-04 1085 prt_printf(err, "error marking new superblock: %s\n", bch2_err_str(ret));
bf25974be5b42c Kent Overstreet 2025-10-04 1086 goto err_late;
bf25974be5b42c Kent Overstreet 2025-10-04 1087 }
bf25974be5b42c Kent Overstreet 2025-10-04 1088
bf25974be5b42c Kent Overstreet 2025-10-04 1089 ret = bch2_fs_freespace_init(c);
bf25974be5b42c Kent Overstreet 2025-10-04 1090 if (ret) {
bf25974be5b42c Kent Overstreet 2025-10-04 1091 prt_printf(err, "error initializing free space: %s\n", bch2_err_str(ret));
bf25974be5b42c Kent Overstreet 2025-10-04 1092 goto err_late;
bf25974be5b42c Kent Overstreet 2025-10-04 1093 }
bf25974be5b42c Kent Overstreet 2025-10-04 1094
bf25974be5b42c Kent Overstreet 2025-10-04 1095 if (ca->mi.state == BCH_MEMBER_STATE_rw)
bf25974be5b42c Kent Overstreet 2025-10-04 1096 __bch2_dev_read_write(c, ca);
bf25974be5b42c Kent Overstreet 2025-10-04 1097
bf25974be5b42c Kent Overstreet 2025-10-04 1098 ret = bch2_dev_journal_alloc(ca, false);
bf25974be5b42c Kent Overstreet 2025-10-04 1099 if (ret) {
bf25974be5b42c Kent Overstreet 2025-10-04 1100 prt_printf(err, "error allocating journal: %s\n", bch2_err_str(ret));
bf25974be5b42c Kent Overstreet 2025-10-04 1101 goto err_late;
bf25974be5b42c Kent Overstreet 2025-10-04 1102 }
bf25974be5b42c Kent Overstreet 2025-10-04 1103 }
bf25974be5b42c Kent Overstreet 2025-10-04 1104
bf25974be5b42c Kent Overstreet 2025-10-04 1105 /*
bf25974be5b42c Kent Overstreet 2025-10-04 1106 * We just changed the superblock UUID, invalidate cache and send a
bf25974be5b42c Kent Overstreet 2025-10-04 1107 * uevent to update /dev/disk/by-uuid
bf25974be5b42c Kent Overstreet 2025-10-04 1108 */
bf25974be5b42c Kent Overstreet 2025-10-04 1109 invalidate_bdev(ca->disk_sb.bdev);
bf25974be5b42c Kent Overstreet 2025-10-04 1110
bf25974be5b42c Kent Overstreet 2025-10-04 1111 char uuid_str[37];
bf25974be5b42c Kent Overstreet 2025-10-04 1112 snprintf(uuid_str, sizeof(uuid_str), "UUID=%pUb", &c->sb.uuid);
bf25974be5b42c Kent Overstreet 2025-10-04 1113
bf25974be5b42c Kent Overstreet 2025-10-04 1114 char *envp[] = {
bf25974be5b42c Kent Overstreet 2025-10-04 1115 "CHANGE=uuid",
bf25974be5b42c Kent Overstreet 2025-10-04 1116 uuid_str,
bf25974be5b42c Kent Overstreet 2025-10-04 1117 NULL,
bf25974be5b42c Kent Overstreet 2025-10-04 1118 };
bf25974be5b42c Kent Overstreet 2025-10-04 1119 kobject_uevent_env(&ca->disk_sb.bdev->bd_device.kobj, KOBJ_CHANGE, envp);
bf25974be5b42c Kent Overstreet 2025-10-04 1120 }
463dd674455875 Kent Overstreet 2025-10-27 1121
463dd674455875 Kent Overstreet 2025-10-27 1122 if (test_bit(BCH_FS_started, &c->flags))
581f7e27bc9728 Kent Overstreet 2025-11-12 1123 try(bch2_set_reconcile_needs_scan(c, s, true));
bf25974be5b42c Kent Overstreet 2025-10-04 1124 out:
bf25974be5b42c Kent Overstreet 2025-10-04 1125 bch_err_fn(c, ret);
bf25974be5b42c Kent Overstreet 2025-10-04 1126 return ret;
bf25974be5b42c Kent Overstreet 2025-10-04 1127 err:
bf25974be5b42c Kent Overstreet 2025-10-04 1128 if (ca)
bf25974be5b42c Kent Overstreet 2025-10-04 1129 bch2_dev_free(ca);
bf25974be5b42c Kent Overstreet 2025-10-04 1130 goto out;
bf25974be5b42c Kent Overstreet 2025-10-04 1131 err_late:
bf25974be5b42c Kent Overstreet 2025-10-04 1132 ca = NULL;
bf25974be5b42c Kent Overstreet 2025-10-04 1133 goto err;
bf25974be5b42c Kent Overstreet 2025-10-04 1134 }
bf25974be5b42c Kent Overstreet 2025-10-04 1135
:::::: The code at line 978 was first introduced by commit
:::::: bf25974be5b42c0341a7f17cb7e6e835d80b41e6 bcachefs: split out init/dev.c
:::::: TO: Kent Overstreet <kent.overstreet@linux.dev>
:::::: CC: Kent Overstreet <kent.overstreet@linux.dev>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-04-07 3:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 3:54 [koverstreet-bcachefs:bcachefs-testing 36/36] fs/bcachefs/init/dev.c:978:5: warning: stack frame size (1040) exceeds limit (1024) in 'bch2_dev_add' kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox