|
@@ -263,6 +263,8 @@ requeue:
|
|
|
void cachefiles_mark_object_inactive(struct cachefiles_cache *cache,
|
|
|
struct cachefiles_object *object)
|
|
|
{
|
|
|
+ blkcnt_t i_blocks = d_backing_inode(object->dentry)->i_blocks;
|
|
|
+
|
|
|
write_lock(&cache->active_lock);
|
|
|
rb_erase(&object->active_node, &cache->active_nodes);
|
|
|
clear_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags);
|
|
@@ -273,8 +275,7 @@ void cachefiles_mark_object_inactive(struct cachefiles_cache *cache,
|
|
|
/* This object can now be culled, so we need to let the daemon know
|
|
|
* that there is something it can remove if it needs to.
|
|
|
*/
|
|
|
- atomic_long_add(d_backing_inode(object->dentry)->i_blocks,
|
|
|
- &cache->b_released);
|
|
|
+ atomic_long_add(i_blocks, &cache->b_released);
|
|
|
if (atomic_inc_return(&cache->f_released))
|
|
|
cachefiles_state_changed(cache);
|
|
|
}
|