| From 70655c06bd3f25111312d63985888112aed15ac5 Mon Sep 17 00:00:00 2001 |
| From: Wu Fengguang <fengguang.wu@intel.com> |
| Date: Tue, 6 Apr 2010 14:34:53 -0700 |
| Subject: readahead: fix NULL filp dereference |
| |
| From: Wu Fengguang <fengguang.wu@intel.com> |
| |
| commit 70655c06bd3f25111312d63985888112aed15ac5 upstream. |
| |
| btrfs relocate_file_extent_cluster() calls us with NULL filp: |
| |
| [ 4005.426805] BUG: unable to handle kernel NULL pointer dereference at 00000021 |
| [ 4005.426818] IP: [<c109a130>] page_cache_sync_readahead+0x18/0x3e |
| |
| Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> |
| Cc: Yan Zheng <yanzheng@21cn.com> |
| Reported-by: Kirill A. Shutemov <kirill@shutemov.name> |
| Tested-by: Kirill A. Shutemov <kirill@shutemov.name> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| mm/readahead.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/mm/readahead.c |
| +++ b/mm/readahead.c |
| @@ -502,7 +502,7 @@ void page_cache_sync_readahead(struct ad |
| return; |
| |
| /* be dumb */ |
| - if (filp->f_mode & FMODE_RANDOM) { |
| + if (filp && (filp->f_mode & FMODE_RANDOM)) { |
| force_page_cache_readahead(mapping, filp, offset, req_size); |
| return; |
| } |