[dhowells-fs:fscache-rewrite-indexing 71/75] include/linux/fscache.h:386: undefined reference to `__fscache_resize_cookie'

From: kernel test robot
Date: Fri Oct 15 2021 - 02:21:28 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git fscache-rewrite-indexing
head: 96d4e1af98c26988d3c1b3cf688974c24de90fa9
commit: 8a43aeca4686a1f00f184392066f00da252797d0 [71/75] 9p: Use fscache indexing rewrite and reenable caching
config: i386-debian-10.3 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?id=8a43aeca4686a1f00f184392066f00da252797d0
git remote add dhowells-fs https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
git fetch --no-tags dhowells-fs fscache-rewrite-indexing
git checkout 8a43aeca4686a1f00f184392066f00da252797d0
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

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

All errors (new ones prefixed by >>):

ld: fs/9p/vfs_inode.o: in function `fscache_resize_cookie':
>> include/linux/fscache.h:386: undefined reference to `__fscache_resize_cookie'
ld: fs/9p/vfs_inode.o: in function `fscache_relinquish_cookie':
>> include/linux/fscache.h:305: undefined reference to `__fscache_relinquish_cookie'
ld: fs/9p/vfs_inode.o: in function `fscache_use_cookie':
>> include/linux/fscache.h:269: undefined reference to `__fscache_use_cookie'
ld: fs/9p/vfs_inode_dotl.o: in function `fscache_use_cookie':
>> include/linux/fscache.h:269: undefined reference to `__fscache_use_cookie'
ld: fs/9p/vfs_addr.o: in function `fscache_begin_read_operation':
>> include/linux/fscache.h:483: undefined reference to `__fscache_begin_read_operation'
ld: fs/9p/vfs_file.o: in function `fscache_use_cookie':
>> include/linux/fscache.h:269: undefined reference to `__fscache_use_cookie'
ld: fs/9p/vfs_dir.o: in function `fscache_unuse_cookie':
>> include/linux/fscache.h:286: undefined reference to `__fscache_unuse_cookie'
>> ld: include/linux/fscache.h:286: undefined reference to `__fscache_unuse_cookie'
ld: fs/9p/v9fs.o: in function `fscache_relinquish_volume':
>> include/linux/fscache.h:221: undefined reference to `__fscache_relinquish_volume'
ld: fs/9p/cache.o: in function `fscache_acquire_volume':
>> include/linux/fscache.h:202: undefined reference to `__fscache_acquire_volume'
ld: fs/9p/cache.o: in function `fscache_acquire_cookie':
>> include/linux/fscache.h:250: undefined reference to `__fscache_acquire_cookie'


vim +386 include/linux/fscache.h

7f9fc1ee74adf2 David Howells 2020-09-22 183
2d6fff63703739 David Howells 2009-04-03 184 /**
056daf803e87af David Howells 2020-02-06 185 * fscache_acquire_volume - Register a volume as desiring caching services
056daf803e87af David Howells 2020-02-06 186 * @volume_key: An identification string for the volume
056daf803e87af David Howells 2020-02-06 187 * @cache_name: The name of the cache to use (or NULL for the default)
056daf803e87af David Howells 2020-02-06 188 * @coherency_data: Piece of arbitrary coherency data to check
056daf803e87af David Howells 2020-02-06 189 *
056daf803e87af David Howells 2020-02-06 190 * Register a volume as desiring caching services if they're available. The
056daf803e87af David Howells 2020-02-06 191 * caller must provide an identifier for the volume and may also indicate which
056daf803e87af David Howells 2020-02-06 192 * cache it should be in. If a preexisting volume entry is found in the cache,
056daf803e87af David Howells 2020-02-06 193 * the coherency data must match otherwise the entry will be invalidated.
2d6fff63703739 David Howells 2009-04-03 194 */
2d6fff63703739 David Howells 2009-04-03 195 static inline
056daf803e87af David Howells 2020-02-06 196 struct fscache_volume *fscache_acquire_volume(const char *volume_key,
056daf803e87af David Howells 2020-02-06 197 const char *cache_name,
056daf803e87af David Howells 2020-02-06 198 u64 coherency_data)
2d6fff63703739 David Howells 2009-04-03 199 {
056daf803e87af David Howells 2020-02-06 200 if (!fscache_available())
2d6fff63703739 David Howells 2009-04-03 201 return NULL;
056daf803e87af David Howells 2020-02-06 @202 return __fscache_acquire_volume(volume_key, cache_name, coherency_data);
2d6fff63703739 David Howells 2009-04-03 203 }
2d6fff63703739 David Howells 2009-04-03 204
2d6fff63703739 David Howells 2009-04-03 205 /**
056daf803e87af David Howells 2020-02-06 206 * fscache_relinquish_volume - Cease caching a volume
056daf803e87af David Howells 2020-02-06 207 * @volume: The volume cookie
056daf803e87af David Howells 2020-02-06 208 * @coherency_data: Piece of arbitrary coherency data to set
056daf803e87af David Howells 2020-02-06 209 * @invalidate: True if the volume should be invalidated
056daf803e87af David Howells 2020-02-06 210 *
056daf803e87af David Howells 2020-02-06 211 * Indicate that a filesystem no longer desires caching services for a volume.
056daf803e87af David Howells 2020-02-06 212 * The caller must have relinquished all file cookies prior to calling this.
056daf803e87af David Howells 2020-02-06 213 * The coherency data stored is updated.
2d6fff63703739 David Howells 2009-04-03 214 */
2d6fff63703739 David Howells 2009-04-03 215 static inline
056daf803e87af David Howells 2020-02-06 216 void fscache_relinquish_volume(struct fscache_volume *volume,
056daf803e87af David Howells 2020-02-06 217 u64 coherency_data,
056daf803e87af David Howells 2020-02-06 218 bool invalidate)
2d6fff63703739 David Howells 2009-04-03 219 {
056daf803e87af David Howells 2020-02-06 220 if (fscache_volume_valid(volume))
056daf803e87af David Howells 2020-02-06 @221 __fscache_relinquish_volume(volume, coherency_data, invalidate);
2d6fff63703739 David Howells 2009-04-03 222 }
2d6fff63703739 David Howells 2009-04-03 223
2d6fff63703739 David Howells 2009-04-03 224 /**
2d6fff63703739 David Howells 2009-04-03 225 * fscache_acquire_cookie - Acquire a cookie to represent a cache object
056daf803e87af David Howells 2020-02-06 226 * @volume: The volume in which to locate/create this cookie
d5c268fc7cd21a David Howells 2020-02-06 227 * @advice: Advice flags (FSCACHE_COOKIE_ADV_*)
402cb8dda949d9 David Howells 2018-04-04 228 * @index_key: The index key for this cookie
402cb8dda949d9 David Howells 2018-04-04 229 * @index_key_len: Size of the index key
402cb8dda949d9 David Howells 2018-04-04 230 * @aux_data: The auxiliary data for the cookie (may be NULL)
402cb8dda949d9 David Howells 2018-04-04 231 * @aux_data_len: Size of the auxiliary data buffer
ee1235a9a06813 David Howells 2018-04-04 232 * @object_size: The initial size of object
2d6fff63703739 David Howells 2009-04-03 233 *
056daf803e87af David Howells 2020-02-06 234 * Acquire a cookie to represent a data file within the given cache volume.
2d6fff63703739 David Howells 2009-04-03 235 *
efc930fa1d8448 Mauro Carvalho Chehab 2020-04-27 236 * See Documentation/filesystems/caching/netfs-api.rst for a complete
2d6fff63703739 David Howells 2009-04-03 237 * description.
2d6fff63703739 David Howells 2009-04-03 238 */
2d6fff63703739 David Howells 2009-04-03 239 static inline
056daf803e87af David Howells 2020-02-06 240 struct fscache_cookie *fscache_acquire_cookie(struct fscache_volume *volume,
d5c268fc7cd21a David Howells 2020-02-06 241 u8 advice,
402cb8dda949d9 David Howells 2018-04-04 242 const void *index_key,
402cb8dda949d9 David Howells 2018-04-04 243 size_t index_key_len,
402cb8dda949d9 David Howells 2018-04-04 244 const void *aux_data,
402cb8dda949d9 David Howells 2018-04-04 245 size_t aux_data_len,
056daf803e87af David Howells 2020-02-06 246 loff_t object_size)
2d6fff63703739 David Howells 2009-04-03 247 {
056daf803e87af David Howells 2020-02-06 248 if (!fscache_volume_valid(volume))
056daf803e87af David Howells 2020-02-06 249 return NULL;
056daf803e87af David Howells 2020-02-06 @250 return __fscache_acquire_cookie(volume, advice,
402cb8dda949d9 David Howells 2018-04-04 251 index_key, index_key_len,
402cb8dda949d9 David Howells 2018-04-04 252 aux_data, aux_data_len,
056daf803e87af David Howells 2020-02-06 253 object_size);
056daf803e87af David Howells 2020-02-06 254 }
056daf803e87af David Howells 2020-02-06 255
056daf803e87af David Howells 2020-02-06 256 /**
056daf803e87af David Howells 2020-02-06 257 * fscache_use_cookie - Request usage of cookie attached to an object
056daf803e87af David Howells 2020-02-06 258 * @object: Object description
056daf803e87af David Howells 2020-02-06 259 * @will_modify: If cache is expected to be modified locally
056daf803e87af David Howells 2020-02-06 260 *
056daf803e87af David Howells 2020-02-06 261 * Request usage of the cookie attached to an object. The caller should tell
056daf803e87af David Howells 2020-02-06 262 * the cache if the object's contents are about to be modified locally and then
056daf803e87af David Howells 2020-02-06 263 * the cache can apply the policy that has been set to handle this case.
056daf803e87af David Howells 2020-02-06 264 */
056daf803e87af David Howells 2020-02-06 265 static inline void fscache_use_cookie(struct fscache_cookie *cookie,
056daf803e87af David Howells 2020-02-06 266 bool will_modify)
056daf803e87af David Howells 2020-02-06 267 {
056daf803e87af David Howells 2020-02-06 268 if (fscache_cookie_valid(cookie))
056daf803e87af David Howells 2020-02-06 @269 __fscache_use_cookie(cookie, will_modify);
056daf803e87af David Howells 2020-02-06 270 }
056daf803e87af David Howells 2020-02-06 271
056daf803e87af David Howells 2020-02-06 272 /**
056daf803e87af David Howells 2020-02-06 273 * fscache_unuse_cookie - Cease usage of cookie attached to an object
056daf803e87af David Howells 2020-02-06 274 * @object: Object description
056daf803e87af David Howells 2020-02-06 275 * @aux_data: Updated auxiliary data (or NULL)
056daf803e87af David Howells 2020-02-06 276 * @object_size: Revised size of the object (or NULL)
056daf803e87af David Howells 2020-02-06 277 *
056daf803e87af David Howells 2020-02-06 278 * Cease usage of the cookie attached to an object. When the users count
056daf803e87af David Howells 2020-02-06 279 * reaches zero then the cookie relinquishment will be permitted to proceed.
056daf803e87af David Howells 2020-02-06 280 */
056daf803e87af David Howells 2020-02-06 281 static inline void fscache_unuse_cookie(struct fscache_cookie *cookie,
056daf803e87af David Howells 2020-02-06 282 const void *aux_data,
056daf803e87af David Howells 2020-02-06 283 const loff_t *object_size)
056daf803e87af David Howells 2020-02-06 284 {
056daf803e87af David Howells 2020-02-06 285 if (fscache_cookie_valid(cookie))
056daf803e87af David Howells 2020-02-06 @286 __fscache_unuse_cookie(cookie, aux_data, object_size);
2d6fff63703739 David Howells 2009-04-03 287 }
2d6fff63703739 David Howells 2009-04-03 288
2d6fff63703739 David Howells 2009-04-03 289 /**
2d6fff63703739 David Howells 2009-04-03 290 * fscache_relinquish_cookie - Return the cookie to the cache, maybe discarding
2d6fff63703739 David Howells 2009-04-03 291 * it
2d6fff63703739 David Howells 2009-04-03 292 * @cookie: The cookie being returned
2d6fff63703739 David Howells 2009-04-03 293 * @retire: True if the cache object the cookie represents is to be discarded
2d6fff63703739 David Howells 2009-04-03 294 *
2d6fff63703739 David Howells 2009-04-03 295 * This function returns a cookie to the cache, forcibly discarding the
056daf803e87af David Howells 2020-02-06 296 * associated cache object if retire is set to true.
2d6fff63703739 David Howells 2009-04-03 297 *
efc930fa1d8448 Mauro Carvalho Chehab 2020-04-27 298 * See Documentation/filesystems/caching/netfs-api.rst for a complete
2d6fff63703739 David Howells 2009-04-03 299 * description.
2d6fff63703739 David Howells 2009-04-03 300 */
2d6fff63703739 David Howells 2009-04-03 301 static inline
056daf803e87af David Howells 2020-02-06 302 void fscache_relinquish_cookie(struct fscache_cookie *cookie, bool retire)
2d6fff63703739 David Howells 2009-04-03 303 {
ccc4fc3d11e914 David Howells 2009-04-03 304 if (fscache_cookie_valid(cookie))
056daf803e87af David Howells 2020-02-06 @305 __fscache_relinquish_cookie(cookie, retire);
2d6fff63703739 David Howells 2009-04-03 306 }
2d6fff63703739 David Howells 2009-04-03 307
423c447e7489a3 David Howells 2020-11-25 308 /*
423c447e7489a3 David Howells 2020-11-25 309 * Find the auxiliary data on a cookie.
423c447e7489a3 David Howells 2020-11-25 310 */
423c447e7489a3 David Howells 2020-11-25 311 static inline void *fscache_get_aux(struct fscache_cookie *cookie)
423c447e7489a3 David Howells 2020-11-25 312 {
423c447e7489a3 David Howells 2020-11-25 313 if (cookie->aux_len <= sizeof(cookie->inline_aux))
423c447e7489a3 David Howells 2020-11-25 314 return cookie->inline_aux;
423c447e7489a3 David Howells 2020-11-25 315 else
423c447e7489a3 David Howells 2020-11-25 316 return cookie->aux;
423c447e7489a3 David Howells 2020-11-25 317 }
423c447e7489a3 David Howells 2020-11-25 318
423c447e7489a3 David Howells 2020-11-25 319 /*
423c447e7489a3 David Howells 2020-11-25 320 * Update the auxiliary data on a cookie.
423c447e7489a3 David Howells 2020-11-25 321 */
423c447e7489a3 David Howells 2020-11-25 322 static inline
423c447e7489a3 David Howells 2020-11-25 323 void fscache_update_aux(struct fscache_cookie *cookie,
423c447e7489a3 David Howells 2020-11-25 324 const void *aux_data, const loff_t *object_size)
423c447e7489a3 David Howells 2020-11-25 325 {
423c447e7489a3 David Howells 2020-11-25 326 void *p = fscache_get_aux(cookie);
423c447e7489a3 David Howells 2020-11-25 327
423c447e7489a3 David Howells 2020-11-25 328 if (aux_data && p)
423c447e7489a3 David Howells 2020-11-25 329 memcpy(p, aux_data, cookie->aux_len);
423c447e7489a3 David Howells 2020-11-25 330 if (object_size)
423c447e7489a3 David Howells 2020-11-25 331 cookie->object_size = *object_size;
423c447e7489a3 David Howells 2020-11-25 332 }
423c447e7489a3 David Howells 2020-11-25 333
423c447e7489a3 David Howells 2020-11-25 334 #ifdef CONFIG_FSCACHE_STATS
423c447e7489a3 David Howells 2020-11-25 335 extern atomic_t fscache_n_updates;
423c447e7489a3 David Howells 2020-11-25 336 #endif
423c447e7489a3 David Howells 2020-11-25 337
423c447e7489a3 David Howells 2020-11-25 338 static inline
423c447e7489a3 David Howells 2020-11-25 339 void __fscache_update_cookie(struct fscache_cookie *cookie, const void *aux_data,
423c447e7489a3 David Howells 2020-11-25 340 const loff_t *object_size)
423c447e7489a3 David Howells 2020-11-25 341 {
423c447e7489a3 David Howells 2020-11-25 342 #ifdef CONFIG_FSCACHE_STATS
423c447e7489a3 David Howells 2020-11-25 343 atomic_inc(&fscache_n_updates);
423c447e7489a3 David Howells 2020-11-25 344 #endif
423c447e7489a3 David Howells 2020-11-25 345 fscache_update_aux(cookie, aux_data, object_size);
423c447e7489a3 David Howells 2020-11-25 346 smp_wmb();
423c447e7489a3 David Howells 2020-11-25 347 set_bit(FSCACHE_COOKIE_NEEDS_UPDATE, &cookie->flags);
423c447e7489a3 David Howells 2020-11-25 348 }
423c447e7489a3 David Howells 2020-11-25 349
2d6fff63703739 David Howells 2009-04-03 350 /**
2d6fff63703739 David Howells 2009-04-03 351 * fscache_update_cookie - Request that a cache object be updated
2d6fff63703739 David Howells 2009-04-03 352 * @cookie: The cookie representing the cache object
402cb8dda949d9 David Howells 2018-04-04 353 * @aux_data: The updated auxiliary data for the cookie (may be NULL)
056daf803e87af David Howells 2020-02-06 354 * @object_size: The current size of the object (may be NULL)
2d6fff63703739 David Howells 2009-04-03 355 *
2d6fff63703739 David Howells 2009-04-03 356 * Request an update of the index data for the cache object associated with the
402cb8dda949d9 David Howells 2018-04-04 357 * cookie. The auxiliary data on the cookie will be updated first if @aux_data
056daf803e87af David Howells 2020-02-06 358 * is set and the object size will be updated and the object possibly trimmed
056daf803e87af David Howells 2020-02-06 359 * if @object_size is set.
2d6fff63703739 David Howells 2009-04-03 360 *
efc930fa1d8448 Mauro Carvalho Chehab 2020-04-27 361 * See Documentation/filesystems/caching/netfs-api.rst for a complete
2d6fff63703739 David Howells 2009-04-03 362 * description.
2d6fff63703739 David Howells 2009-04-03 363 */
2d6fff63703739 David Howells 2009-04-03 364 static inline
056daf803e87af David Howells 2020-02-06 365 void fscache_update_cookie(struct fscache_cookie *cookie, const void *aux_data,
056daf803e87af David Howells 2020-02-06 366 const loff_t *object_size)
2d6fff63703739 David Howells 2009-04-03 367 {
b4a0c0e0a13cea Jeff Layton 2020-07-30 368 if (fscache_cookie_enabled(cookie))
056daf803e87af David Howells 2020-02-06 369 __fscache_update_cookie(cookie, aux_data, object_size);
2d6fff63703739 David Howells 2009-04-03 370 }
2d6fff63703739 David Howells 2009-04-03 371
9d8038c4821d31 David Howells 2020-02-06 372 /**
9d8038c4821d31 David Howells 2020-02-06 373 * fscache_resize_cookie - Request that a cache object be resized
9d8038c4821d31 David Howells 2020-02-06 374 * @cookie: The cookie representing the cache object
9d8038c4821d31 David Howells 2020-02-06 375 * @new_size: The new size of the object (may be NULL)
9d8038c4821d31 David Howells 2020-02-06 376 *
9d8038c4821d31 David Howells 2020-02-06 377 * Request that the size of an object be changed.
9d8038c4821d31 David Howells 2020-02-06 378 *
9d8038c4821d31 David Howells 2020-02-06 379 * See Documentation/filesystems/caching/netfs-api.txt for a complete
9d8038c4821d31 David Howells 2020-02-06 380 * description.
9d8038c4821d31 David Howells 2020-02-06 381 */
9d8038c4821d31 David Howells 2020-02-06 382 static inline
9d8038c4821d31 David Howells 2020-02-06 383 void fscache_resize_cookie(struct fscache_cookie *cookie, loff_t new_size)
9d8038c4821d31 David Howells 2020-02-06 384 {
9d8038c4821d31 David Howells 2020-02-06 385 if (fscache_cookie_enabled(cookie))
9d8038c4821d31 David Howells 2020-02-06 @386 __fscache_resize_cookie(cookie, new_size);
9d8038c4821d31 David Howells 2020-02-06 387 }
9d8038c4821d31 David Howells 2020-02-06 388
2d6fff63703739 David Howells 2009-04-03 389 /**
2d6fff63703739 David Howells 2009-04-03 390 * fscache_pin_cookie - Pin a data-storage cache object in its cache
2d6fff63703739 David Howells 2009-04-03 391 * @cookie: The cookie representing the cache object
2d6fff63703739 David Howells 2009-04-03 392 *
2d6fff63703739 David Howells 2009-04-03 393 * Permit data-storage cache objects to be pinned in the cache.
2d6fff63703739 David Howells 2009-04-03 394 *
efc930fa1d8448 Mauro Carvalho Chehab 2020-04-27 395 * See Documentation/filesystems/caching/netfs-api.rst for a complete
2d6fff63703739 David Howells 2009-04-03 396 * description.
2d6fff63703739 David Howells 2009-04-03 397 */
2d6fff63703739 David Howells 2009-04-03 398 static inline
2d6fff63703739 David Howells 2009-04-03 399 int fscache_pin_cookie(struct fscache_cookie *cookie)
2d6fff63703739 David Howells 2009-04-03 400 {
2d6fff63703739 David Howells 2009-04-03 401 return -ENOBUFS;
2d6fff63703739 David Howells 2009-04-03 402 }
2d6fff63703739 David Howells 2009-04-03 403
2d6fff63703739 David Howells 2009-04-03 404 /**
2d6fff63703739 David Howells 2009-04-03 405 * fscache_pin_cookie - Unpin a data-storage cache object in its cache
2d6fff63703739 David Howells 2009-04-03 406 * @cookie: The cookie representing the cache object
2d6fff63703739 David Howells 2009-04-03 407 *
2d6fff63703739 David Howells 2009-04-03 408 * Permit data-storage cache objects to be unpinned from the cache.
2d6fff63703739 David Howells 2009-04-03 409 *
efc930fa1d8448 Mauro Carvalho Chehab 2020-04-27 410 * See Documentation/filesystems/caching/netfs-api.rst for a complete
2d6fff63703739 David Howells 2009-04-03 411 * description.
2d6fff63703739 David Howells 2009-04-03 412 */
2d6fff63703739 David Howells 2009-04-03 413 static inline
2d6fff63703739 David Howells 2009-04-03 414 void fscache_unpin_cookie(struct fscache_cookie *cookie)
2d6fff63703739 David Howells 2009-04-03 415 {
2d6fff63703739 David Howells 2009-04-03 416 }
2d6fff63703739 David Howells 2009-04-03 417
ef778e7ae67cd4 David Howells 2012-12-20 418 /**
ef778e7ae67cd4 David Howells 2012-12-20 419 * fscache_invalidate - Notify cache that an object needs invalidation
ef778e7ae67cd4 David Howells 2012-12-20 420 * @cookie: The cookie representing the cache object
d8d6f8e68e17cd David Howells 2020-02-06 421 * @aux_data: The updated auxiliary data for the cookie (may be NULL)
6b97c8850f9876 David Howells 2021-10-04 422 * @size: The revised size of the object.
d8d6f8e68e17cd David Howells 2020-02-06 423 * @flags: Invalidation flags (FSCACHE_INVAL_*)
ef778e7ae67cd4 David Howells 2012-12-20 424 *
ef778e7ae67cd4 David Howells 2012-12-20 425 * Notify the cache that an object is needs to be invalidated and that it
ef778e7ae67cd4 David Howells 2012-12-20 426 * should abort any retrievals or stores it is doing on the cache. The object
ef778e7ae67cd4 David Howells 2012-12-20 427 * is then marked non-caching until such time as the invalidation is complete.
ef778e7ae67cd4 David Howells 2012-12-20 428 *
d8d6f8e68e17cd David Howells 2020-02-06 429 * FSCACHE_INVAL_LIGHT indicates that if the object has been invalidated and
d8d6f8e68e17cd David Howells 2020-02-06 430 * replaced by a temporary object, the temporary object need not be replaced
d8d6f8e68e17cd David Howells 2020-02-06 431 * again. This is primarily intended for use with FSCACHE_ADV_SINGLE_CHUNK.
d8d6f8e68e17cd David Howells 2020-02-06 432 *
d8d6f8e68e17cd David Howells 2020-02-06 433 * FSCACHE_INVAL_DIO_WRITE indicates that this is due to a direct I/O write and
d8d6f8e68e17cd David Howells 2020-02-06 434 * may cause caching to be suspended on this cookie.
ef778e7ae67cd4 David Howells 2012-12-20 435 *
efc930fa1d8448 Mauro Carvalho Chehab 2020-04-27 436 * See Documentation/filesystems/caching/netfs-api.rst for a complete
ef778e7ae67cd4 David Howells 2012-12-20 437 * description.
ef778e7ae67cd4 David Howells 2012-12-20 438 */
ef778e7ae67cd4 David Howells 2012-12-20 439 static inline
d8d6f8e68e17cd David Howells 2020-02-06 440 void fscache_invalidate(struct fscache_cookie *cookie,
d8d6f8e68e17cd David Howells 2020-02-06 441 const void *aux_data, loff_t size, unsigned int flags)
ef778e7ae67cd4 David Howells 2012-12-20 442 {
b4a0c0e0a13cea Jeff Layton 2020-07-30 443 if (fscache_cookie_enabled(cookie))
d8d6f8e68e17cd David Howells 2020-02-06 444 __fscache_invalidate(cookie, aux_data, size, flags);
ef778e7ae67cd4 David Howells 2012-12-20 445 }
ef778e7ae67cd4 David Howells 2012-12-20 446
ef778e7ae67cd4 David Howells 2012-12-20 447 /**
056daf803e87af David Howells 2020-02-06 448 * fscache_operation_valid - Return true if operations resources are usable
056daf803e87af David Howells 2020-02-06 449 * @cres: The resources to check.
ef778e7ae67cd4 David Howells 2012-12-20 450 *
056daf803e87af David Howells 2020-02-06 451 * Returns a pointer to the operations table if usable or NULL if not.
ef778e7ae67cd4 David Howells 2012-12-20 452 */
ef778e7ae67cd4 David Howells 2012-12-20 453 static inline
056daf803e87af David Howells 2020-02-06 454 const struct netfs_cache_ops *fscache_operation_valid(const struct netfs_cache_resources *cres)
ef778e7ae67cd4 David Howells 2012-12-20 455 {
056daf803e87af David Howells 2020-02-06 456 return fscache_resources_valid(cres) ? cres->ops : NULL;
ef778e7ae67cd4 David Howells 2012-12-20 457 }
ef778e7ae67cd4 David Howells 2012-12-20 458
26aaeffcafe6cb David Howells 2021-02-22 459 #ifdef FSCACHE_USE_NEW_IO_API
26aaeffcafe6cb David Howells 2021-02-22 460
26aaeffcafe6cb David Howells 2021-02-22 461 /**
26aaeffcafe6cb David Howells 2021-02-22 462 * fscache_begin_read_operation - Begin a read operation for the netfs lib
a2872465a68c9b David Howells 2021-09-14 463 * @cres: The cache resources for the read being performed
26aaeffcafe6cb David Howells 2021-02-22 464 * @cookie: The cookie representing the cache object
26aaeffcafe6cb David Howells 2021-02-22 465 *
a2872465a68c9b David Howells 2021-09-14 466 * Begin a read operation on behalf of the netfs helper library. @cres
a2872465a68c9b David Howells 2021-09-14 467 * indicates the cache resources to which the operation state should be
a2872465a68c9b David Howells 2021-09-14 468 * attached; @cookie indicates the cache object that will be accessed.
26aaeffcafe6cb David Howells 2021-02-22 469 *
26aaeffcafe6cb David Howells 2021-02-22 470 * This is intended to be called from the ->begin_cache_operation() netfs lib
26aaeffcafe6cb David Howells 2021-02-22 471 * operation as implemented by the network filesystem.
26aaeffcafe6cb David Howells 2021-02-22 472 *
26aaeffcafe6cb David Howells 2021-02-22 473 * Returns:
26aaeffcafe6cb David Howells 2021-02-22 474 * * 0 - Success
26aaeffcafe6cb David Howells 2021-02-22 475 * * -ENOBUFS - No caching available
26aaeffcafe6cb David Howells 2021-02-22 476 * * Other error code from the cache, such as -ENOMEM.
26aaeffcafe6cb David Howells 2021-02-22 477 */
26aaeffcafe6cb David Howells 2021-02-22 478 static inline
a2872465a68c9b David Howells 2021-09-14 479 int fscache_begin_read_operation(struct netfs_cache_resources *cres,
26aaeffcafe6cb David Howells 2021-02-22 480 struct fscache_cookie *cookie)
26aaeffcafe6cb David Howells 2021-02-22 481 {
b4a0c0e0a13cea Jeff Layton 2020-07-30 482 if (fscache_cookie_enabled(cookie))
056daf803e87af David Howells 2020-02-06 @483 return __fscache_begin_read_operation(cres, cookie);
26aaeffcafe6cb David Howells 2021-02-22 484 return -ENOBUFS;
26aaeffcafe6cb David Howells 2021-02-22 485 }
26aaeffcafe6cb David Howells 2021-02-22 486

:::::: The code at line 386 was first introduced by commit
:::::: 9d8038c4821d31fb8928f85f9f708ae7e831b775 fscache: Provide resize operation

:::::: TO: David Howells <dhowells@xxxxxxxxxx>
:::::: CC: David Howells <dhowells@xxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip