diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-10-16 14:04:34 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-10-16 14:04:34 +0300 |
commit | 4d69f155d58d0f75c5404ea502178b1943a04755 (patch) | |
tree | fe5b7608f05f6951fce748ea1e93d942b52902bd /fs/cachefiles/interface.c | |
parent | c474e50711aa79b7bd0ea30b44744baca5650375 (diff) | |
parent | 1001354ca34179f3db924eb66672442a173147dc (diff) | |
download | linux-4d69f155d58d0f75c5404ea502178b1943a04755.tar.xz |
Merge tag 'v4.9-rc1' into x86/fpu, to resolve conflict
Signed-off-by: Ingo Molnar <mingo@kernel.org>
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) struct cachefiles_object *object; struct cachefiles_cache *cache; const struct cred *saved_cred; + struct inode *inode; + blkcnt_t i_blocks = 0; ASSERT(_object); @@ -279,6 +281,10 @@ static void cachefiles_drop_object(struct fscache_object *_object) _object != cache->cache.fsdef ) { _debug("- retire object OBJ%x", object->fscache.debug_id); + inode = d_backing_inode(object->dentry); + if (inode) + i_blocks = inode->i_blocks; + cachefiles_begin_secure(cache, &saved_cred); cachefiles_delete_object(cache, object); cachefiles_end_secure(cache, saved_cred); @@ -292,7 +298,7 @@ static void cachefiles_drop_object(struct fscache_object *_object) /* note that the object is now inactive */ if (test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags)) - cachefiles_mark_object_inactive(cache, object); + cachefiles_mark_object_inactive(cache, object, i_blocks); dput(object->dentry); object->dentry = NULL; |