diff options
Diffstat (limited to 'fs/cachefiles/interface.c')
-rw-r--r-- | fs/cachefiles/interface.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/fs/cachefiles/interface.c b/fs/cachefiles/interface.c index 675a3332d72f..861d611b8c05 100644 --- a/fs/cachefiles/interface.c +++ b/fs/cachefiles/interface.c | |||
@@ -291,15 +291,8 @@ static void cachefiles_drop_object(struct fscache_object *_object) | |||
291 | } | 291 | } |
292 | 292 | ||
293 | /* note that the object is now inactive */ | 293 | /* note that the object is now inactive */ |
294 | if (test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags)) { | 294 | if (test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags)) |
295 | write_lock(&cache->active_lock); | 295 | cachefiles_mark_object_inactive(cache, object); |
296 | if (!test_and_clear_bit(CACHEFILES_OBJECT_ACTIVE, | ||
297 | &object->flags)) | ||
298 | BUG(); | ||
299 | rb_erase(&object->active_node, &cache->active_nodes); | ||
300 | wake_up_bit(&object->flags, CACHEFILES_OBJECT_ACTIVE); | ||
301 | write_unlock(&cache->active_lock); | ||
302 | } | ||
303 | 296 | ||
304 | dput(object->dentry); | 297 | dput(object->dentry); |
305 | object->dentry = NULL; | 298 | object->dentry = NULL; |