aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cachefiles/interface.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2013-08-21 17:29:21 -0400
committerDavid Howells <dhowells@redhat.com>2013-09-06 04:17:30 -0400
commit5002d7bef81c9646bbb06fb57db4a100aa5a57c5 (patch)
tree7894e28d5f50756b655acf46dbed6cdd41deccec /fs/cachefiles/interface.c
parentda9803bc8812f5bd3b26baaa90e515b843c65ff7 (diff)
CacheFiles: Implement interface to check cache consistency
Implement the FS-Cache interface to check the consistency of a cache object in CacheFiles. Original-author: Hongyi Jia <jiayisuse@gmail.com> Signed-off-by: David Howells <dhowells@redhat.com> cc: Hongyi Jia <jiayisuse@gmail.com> cc: Milosz Tanski <milosz@adfin.com>
Diffstat (limited to 'fs/cachefiles/interface.c')
-rw-r--r--fs/cachefiles/interface.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/fs/cachefiles/interface.c b/fs/cachefiles/interface.c
index d4c1206af9fc..43eb5592cdea 100644
--- a/fs/cachefiles/interface.c
+++ b/fs/cachefiles/interface.c
@@ -378,6 +378,31 @@ static void cachefiles_sync_cache(struct fscache_cache *_cache)
378} 378}
379 379
380/* 380/*
381 * check if the backing cache is updated to FS-Cache
382 * - called by FS-Cache when evaluates if need to invalidate the cache
383 */
384static bool cachefiles_check_consistency(struct fscache_operation *op)
385{
386 struct cachefiles_object *object;
387 struct cachefiles_cache *cache;
388 const struct cred *saved_cred;
389 int ret;
390
391 _enter("{OBJ%x}", op->object->debug_id);
392
393 object = container_of(op->object, struct cachefiles_object, fscache);
394 cache = container_of(object->fscache.cache,
395 struct cachefiles_cache, cache);
396
397 cachefiles_begin_secure(cache, &saved_cred);
398 ret = cachefiles_check_auxdata(object);
399 cachefiles_end_secure(cache, saved_cred);
400
401 _leave(" = %d", ret);
402 return ret;
403}
404
405/*
381 * notification the attributes on an object have changed 406 * notification the attributes on an object have changed
382 * - called with reads/writes excluded by FS-Cache 407 * - called with reads/writes excluded by FS-Cache
383 */ 408 */
@@ -522,4 +547,5 @@ const struct fscache_cache_ops cachefiles_cache_ops = {
522 .write_page = cachefiles_write_page, 547 .write_page = cachefiles_write_page,
523 .uncache_page = cachefiles_uncache_page, 548 .uncache_page = cachefiles_uncache_page,
524 .dissociate_pages = cachefiles_dissociate_pages, 549 .dissociate_pages = cachefiles_dissociate_pages,
550 .check_consistency = cachefiles_check_consistency,
525}; 551};