Whamcloud - gitweb
LU-5162 mdc: Add exception entry check for radix_tree 09/10709/2
authorYang Sheng <yang.sheng@intel.com>
Fri, 13 Jun 2014 03:33:02 +0000 (11:33 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 16 Jun 2014 14:10:23 +0000 (14:10 +0000)
We need check exception entry after radix_tree lookup.

Signed-off-by: Yang Sheng <yang.sheng@intel.com>
Change-Id: I9a8493e0de7d44f04b00d43919ed5f3ab6c1d0d9
Reviewed-on: http://review.whamcloud.com/10709
Tested-by: Jenkins
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/mdc/mdc_request.c

index 135a55e..37f9032 100644 (file)
@@ -1181,7 +1181,7 @@ static struct page *mdc_page_locate(struct address_space *mapping, __u64 *hash,
        spin_lock_irq(&mapping->tree_lock);
        found = radix_tree_gang_lookup(&mapping->page_tree,
                                       (void **)&page, offset, 1);
        spin_lock_irq(&mapping->tree_lock);
        found = radix_tree_gang_lookup(&mapping->page_tree,
                                       (void **)&page, offset, 1);
-       if (found > 0) {
+       if (found > 0 && !radix_tree_exceptional_entry(page)) {
                struct lu_dirpage *dp;
 
                page_cache_get(page);
                struct lu_dirpage *dp;
 
                page_cache_get(page);