Commit 18a38193 authored by Sage Weil's avatar Sage Weil

ceph: use mapping->nrpages to determine if mapping is empty

This is simpler and faster.
Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent 93afd449
...@@ -1417,17 +1417,6 @@ static int __mark_caps_flushing(struct inode *inode, ...@@ -1417,17 +1417,6 @@ static int __mark_caps_flushing(struct inode *inode,
/* /*
* try to invalidate mapping pages without blocking. * 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) static int try_nonblocking_invalidate(struct inode *inode)
{ {
struct ceph_inode_info *ci = ceph_inode(inode); struct ceph_inode_info *ci = ceph_inode(inode);
...@@ -1437,7 +1426,7 @@ static int try_nonblocking_invalidate(struct inode *inode) ...@@ -1437,7 +1426,7 @@ static int try_nonblocking_invalidate(struct inode *inode)
invalidate_mapping_pages(&inode->i_data, 0, -1); invalidate_mapping_pages(&inode->i_data, 0, -1);
spin_lock(&inode->i_lock); spin_lock(&inode->i_lock);
if (mapping_is_empty(&inode->i_data) && if (inode->i_data.nrpages == 0 &&
invalidating_gen == ci->i_rdcache_gen) { invalidating_gen == ci->i_rdcache_gen) {
/* success. */ /* success. */
dout("try_nonblocking_invalidate %p success\n", inode); dout("try_nonblocking_invalidate %p success\n", inode);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment