diff options
author | Sage Weil <sage@newdream.net> | 2010-09-17 19:46:44 +0200 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-10-21 00:38:15 +0200 |
commit | 18a38193efcaac1fb3c94ad8fa04bb117850a3c2 (patch) | |
tree | 096877dc2a039a991262d9f05fa0a2c2f684cfa8 /fs/ceph | |
parent | ceph: only invalidate on check_caps if we actually have pages (diff) | |
download | linux-18a38193efcaac1fb3c94ad8fa04bb117850a3c2.tar.xz linux-18a38193efcaac1fb3c94ad8fa04bb117850a3c2.zip |
ceph: use mapping->nrpages to determine if mapping is empty
This is simpler and faster.
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph')
-rw-r--r-- | fs/ceph/caps.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 3c03460f48bd..98ab13e2b71d 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -1417,17 +1417,6 @@ static int __mark_caps_flushing(struct inode *inode, /* * try to invalidate mapping pages without blocking. */ -static int mapping_is_empty(struct address_space *mapping) -{ - struct page *page = find_get_page(mapping, 0); - - if (!page) - return 1; - - put_page(page); - return 0; -} - static int try_nonblocking_invalidate(struct inode *inode) { struct ceph_inode_info *ci = ceph_inode(inode); @@ -1437,7 +1426,7 @@ static int try_nonblocking_invalidate(struct inode *inode) invalidate_mapping_pages(&inode->i_data, 0, -1); spin_lock(&inode->i_lock); - if (mapping_is_empty(&inode->i_data) && + if (inode->i_data.nrpages == 0 && invalidating_gen == ci->i_rdcache_gen) { /* success. */ dout("try_nonblocking_invalidate %p success\n", inode); |