diff options
Diffstat (limited to 'fs/cachefiles/interface.c')
-rw-r--r-- | fs/cachefiles/interface.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/cachefiles/interface.c b/fs/cachefiles/interface.c index ce5f345d70f5..e7f16a77a22a 100644 --- a/fs/cachefiles/interface.c +++ b/fs/cachefiles/interface.c | |||
@@ -253,6 +253,8 @@ static void cachefiles_drop_object(struct fscache_object *_object) | |||
253 | struct cachefiles_object *object; | 253 | struct cachefiles_object *object; |
254 | struct cachefiles_cache *cache; | 254 | struct cachefiles_cache *cache; |
255 | const struct cred *saved_cred; | 255 | const struct cred *saved_cred; |
256 | struct inode *inode; | ||
257 | blkcnt_t i_blocks = 0; | ||
256 | 258 | ||
257 | ASSERT(_object); | 259 | ASSERT(_object); |
258 | 260 | ||
@@ -279,6 +281,10 @@ static void cachefiles_drop_object(struct fscache_object *_object) | |||
279 | _object != cache->cache.fsdef | 281 | _object != cache->cache.fsdef |
280 | ) { | 282 | ) { |
281 | _debug("- retire object OBJ%x", object->fscache.debug_id); | 283 | _debug("- retire object OBJ%x", object->fscache.debug_id); |
284 | inode = d_backing_inode(object->dentry); | ||
285 | if (inode) | ||
286 | i_blocks = inode->i_blocks; | ||
287 | |||
282 | cachefiles_begin_secure(cache, &saved_cred); | 288 | cachefiles_begin_secure(cache, &saved_cred); |
283 | cachefiles_delete_object(cache, object); | 289 | cachefiles_delete_object(cache, object); |
284 | cachefiles_end_secure(cache, saved_cred); | 290 | cachefiles_end_secure(cache, saved_cred); |
@@ -292,7 +298,7 @@ static void cachefiles_drop_object(struct fscache_object *_object) | |||
292 | 298 | ||
293 | /* note that the object is now inactive */ | 299 | /* note that the object is now inactive */ |
294 | if (test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags)) | 300 | if (test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags)) |
295 | cachefiles_mark_object_inactive(cache, object); | 301 | cachefiles_mark_object_inactive(cache, object, i_blocks); |
296 | 302 | ||
297 | dput(object->dentry); | 303 | dput(object->dentry); |
298 | object->dentry = NULL; | 304 | object->dentry = NULL; |