Re: [PATCH 1/2 net-next] libceph: Use sruct_size() in ceph_create_snap_context()

kernel test robot
2024-05-19T11:56:19Z

Hi Christophe,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url: https://github.com/intel-lab-lkp/linux/commits/Christophe-JAILLET/libceph-Use-__counted_by-in-struct-ceph_snap_context/20240519-172142
base: net-next/main
patch link: https://lore.kernel.org/r/5b7c72bdb52703bbfa5511ed500aed4babde1308.1716109606.git.christophe.jaillet%40wanadoo.fr
patch subject: [PATCH 1/2 net-next] libceph: Use sruct_size() in ceph_create_snap_context()
config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20240519/202405191916.QmDasdJ5-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240519/202405191916.QmDasdJ5-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/202405191916.QmDasdJ5-lkp@intel.com/

All errors (new ones prefixed by >>):

>> net/ceph/snapshot.c:32:18: error: call to undeclared function 'sruct_size'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
32 | snapc = kzalloc(sruct_size(snapc, snaps, snap_count), gfp_flags);
| ^
>> net/ceph/snapshot.c:32:36: error: use of undeclared identifier 'snaps'; did you mean 'snapc'?
32 | snapc = kzalloc(sruct_size(snapc, snaps, snap_count), gfp_flags);
| ^~~~~
| snapc
net/ceph/snapshot.c:30:28: note: 'snapc' declared here
30 | struct ceph_snap_context *snapc;
| ^
2 errors generated.

vim +/sruct_size +32 net/ceph/snapshot.c

11
12 /*
13 * Ceph snapshot contexts are reference counted objects, and the
14 * returned structure holds a single reference. Acquire additional
15 * references with ceph_get_snap_context(), and release them with
16 * ceph_put_snap_context(). When the reference count reaches zero
17 * the entire structure is freed.
18 */
19
20 /*
21 * Create a new ceph snapshot context large enough to hold the
22 * indicated number of snapshot ids (which can be 0). Caller has
23 * to fill in snapc->seq and snapc->snaps[0..snap_count-1].
24 *
25 * Returns a null pointer if an error occurs.
26 */
27 struct ceph_snap_context *ceph_create_snap_context(u32 snap_count,
28 gfp_t gfp_flags)
29 {
30 struct ceph_snap_context *snapc;
31
> 32 snapc = kzalloc(sruct_size(snapc, snaps, snap_count), gfp_flags);
33 if (!snapc)
34 return NULL;
35
36 refcount_set(&snapc->nref, 1);
37 snapc->num_snaps = snap_count;
38
39 return snapc;
40 }
41 EXPORT_SYMBOL(ceph_create_snap_context);
42

--
0-DAY CI Kernel Test Service