diff options
author | Dan Carpenter <error27@gmail.com> | 2010-06-01 15:58:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-01 16:32:11 -0400 |
commit | 08a66859e69264f3223560d06b88e80c1a6a6387 (patch) | |
tree | 509c8808edb8e2d66aaa5d6fefccc1c862a1dca0 /fs/fscache/page.c | |
parent | 0a6531ebea13b164825ba28e77dcbed3e9386884 (diff) |
FS-Cache: Remove unneeded null checks
fscache_write_op() makes unnecessary checks of the page variable to see if it
is NULL. It can't be NULL at those points as the kernel would already have
crashed a little higher up where we examined page->index.
Furthermore, unless radix_tree_gang_lookup_tag() can return 1 but no page, a
NULL pointer crash should not be encountered there as we can only get there if
r_t_g_l_t() returned 1.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/fscache/page.c')
-rw-r--r-- | fs/fscache/page.c | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/fs/fscache/page.c b/fs/fscache/page.c index 47aefd376e54..723b889fd219 100644 --- a/fs/fscache/page.c +++ b/fs/fscache/page.c | |||
@@ -710,30 +710,26 @@ static void fscache_write_op(struct fscache_operation *_op) | |||
710 | goto superseded; | 710 | goto superseded; |
711 | } | 711 | } |
712 | 712 | ||
713 | if (page) { | 713 | radix_tree_tag_set(&cookie->stores, page->index, |
714 | radix_tree_tag_set(&cookie->stores, page->index, | 714 | FSCACHE_COOKIE_STORING_TAG); |
715 | FSCACHE_COOKIE_STORING_TAG); | 715 | radix_tree_tag_clear(&cookie->stores, page->index, |
716 | radix_tree_tag_clear(&cookie->stores, page->index, | 716 | FSCACHE_COOKIE_PENDING_TAG); |
717 | FSCACHE_COOKIE_PENDING_TAG); | ||
718 | } | ||
719 | 717 | ||
720 | spin_unlock(&cookie->stores_lock); | 718 | spin_unlock(&cookie->stores_lock); |
721 | spin_unlock(&object->lock); | 719 | spin_unlock(&object->lock); |
722 | 720 | ||
723 | if (page) { | 721 | fscache_set_op_state(&op->op, "Store"); |
724 | fscache_set_op_state(&op->op, "Store"); | 722 | fscache_stat(&fscache_n_store_pages); |
725 | fscache_stat(&fscache_n_store_pages); | 723 | fscache_stat(&fscache_n_cop_write_page); |
726 | fscache_stat(&fscache_n_cop_write_page); | 724 | ret = object->cache->ops->write_page(op, page); |
727 | ret = object->cache->ops->write_page(op, page); | 725 | fscache_stat_d(&fscache_n_cop_write_page); |
728 | fscache_stat_d(&fscache_n_cop_write_page); | 726 | fscache_set_op_state(&op->op, "EndWrite"); |
729 | fscache_set_op_state(&op->op, "EndWrite"); | 727 | fscache_end_page_write(object, page); |
730 | fscache_end_page_write(object, page); | 728 | if (ret < 0) { |
731 | if (ret < 0) { | 729 | fscache_set_op_state(&op->op, "Abort"); |
732 | fscache_set_op_state(&op->op, "Abort"); | 730 | fscache_abort_object(object); |
733 | fscache_abort_object(object); | 731 | } else { |
734 | } else { | 732 | fscache_enqueue_operation(&op->op); |
735 | fscache_enqueue_operation(&op->op); | ||
736 | } | ||
737 | } | 733 | } |
738 | 734 | ||
739 | _leave(""); | 735 | _leave(""); |