* [ceph-client:testing 35/47] fs/ceph/crypto.c:187:17: sparse: sparse: non size-preserving pointer to integer cast
@ 2026-10-31 21:45 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-31 21:45 UTC (permalink / raw)
To: Alex Markuze; +Cc: oe-kbuild-all, ceph-devel, Ilya Dryomov, Xiubo Li
tree: https://github.com/ceph/ceph-client.git testing
head: 3f007b9f327745c94aec312a28973b28f6a51fc4
commit: 88d679bc66688124f73a2e30617c12a14bb5aeff [35/47] ceph: convert remaining helper paths to BLOG logging
config: m68k-randconfig-r2300-20261031 (https://download.01.org/0day-ci/archive/20261031/202610312244.cykVgFEJ-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 8.5.0
sparse: v0.6.5-rc1-21-g84ec0658
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261031/202610312244.cykVgFEJ-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/202610312244.cykVgFEJ-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> fs/ceph/crypto.c:187:17: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:200:17: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:210:25: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:210:25: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:281:9: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:498:9: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:498:9: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:498:9: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:498:9: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:509:9: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:509:9: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:509:9: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:509:9: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:586:17: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:586:17: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:586:17: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:610:17: sparse: sparse: non size-preserving pointer to integer cast
fs/ceph/crypto.c:610:17: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:610:17: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:610:17: sparse: sparse: non size-preserving integer to pointer cast
fs/ceph/crypto.c:610:17: sparse: sparse: non size-preserving integer to pointer cast
vim +187 fs/ceph/crypto.c
154
155 /*
156 * User-created snapshots can't start with '_'. Snapshots that start with this
157 * character are special (hint: there aren't real snapshots) and use the
158 * following format:
159 *
160 * _<SNAPSHOT-NAME>_<INODE-NUMBER>
161 *
162 * where:
163 * - <SNAPSHOT-NAME> - the real snapshot name that may need to be decrypted,
164 * - <INODE-NUMBER> - the inode number (in decimal) for the actual snapshot
165 *
166 * This function parses these snapshot names and returns the inode
167 * <INODE-NUMBER>. 'name_len' will also bet set with the <SNAPSHOT-NAME>
168 * length.
169 */
170 static struct inode *parse_longname(const struct inode *parent,
171 const char *name, int *name_len)
172 {
173 struct ceph_client *cl = ceph_inode_to_client(parent);
174 struct inode *dir = NULL;
175 struct ceph_vino vino = { .snap = CEPH_NOSNAP };
176 char *name_end, *inode_number;
177 int ret = -EIO;
178 /* Snapshot name must start with an underscore */
179 if (*name_len <= 0 || name[0] != '_')
180 return ERR_PTR(-EIO);
181 /* Skip initial '_' and NUL-terminate */
182 char *str __free(kfree) = kmemdup_nul(name + 1, *name_len - 1, GFP_KERNEL);
183 if (!str)
184 return ERR_PTR(-ENOMEM);
185 name_end = strrchr(str, '_');
186 if (!name_end) {
> 187 boutc(cl, "failed to parse long snapshot name: %s\n", str);
188 return ERR_PTR(-EIO);
189 }
190 *name_len = (name_end - str);
191 if (*name_len <= 0) {
192 pr_err_client(cl, "failed to parse long snapshot name\n");
193 return ERR_PTR(-EIO);
194 }
195
196 /* Get the inode number */
197 inode_number = name_end + 1;
198 ret = kstrtou64(inode_number, 10, &vino.ino);
199 if (ret) {
200 boutc(cl, "failed to parse inode number: %s\n", str);
201 return ERR_PTR(ret);
202 }
203
204 /* And finally the inode */
205 dir = ceph_find_inode(parent->i_sb, vino);
206 if (!dir) {
207 /* This can happen if we're not mounting cephfs on the root */
208 dir = ceph_get_inode(parent->i_sb, vino, NULL);
209 if (IS_ERR(dir))
210 boutc(cl, "can't find inode %s (_%s)\n", inode_number, str);
211 }
212 return dir;
213 }
214
--
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-10-31 21:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-31 21:45 [ceph-client:testing 35/47] fs/ceph/crypto.c:187:17: sparse: sparse: non size-preserving pointer to integer cast kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.