Luís Henriques 08d094
From: Takashi Iwai <tiwai@suse.de>
Luís Henriques 08d094
Date: Wed, 20 Jan 2021 16:11:12 +0000
Luís Henriques 08d094
Subject: cachefiles: Drop superfluous readpages aops NULL check
Luís Henriques 08d094
Git-commit: db58465f1121086b524be80be39d1fedbe5387f3
Luís Henriques 08d094
Patch-mainline: v5.11-rc5
Luís Henriques 08d094
References: bsc#1210430
Luís Henriques 08d094
Luís Henriques 08d094
After the recent actions to convert readpages aops to readahead, the
Luís Henriques 08d094
NULL checks of readpages aops in cachefiles_read_or_alloc_page() may
Luís Henriques 08d094
hit falsely.  More badly, it's an ASSERT() call, and this panics.
Luís Henriques 08d094
Luís Henriques 08d094
Drop the superfluous NULL checks for fixing this regression.
Luís Henriques 08d094
Luís Henriques 08d094
[dh: Note that cachefiles never actually used readpages, so this check was
Luís Henriques 08d094
 never actually necessary]
Luís Henriques 08d094
Luís Henriques 08d094
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=208883
Luís Henriques 08d094
Buglink: https://bugzilla.opensuse.org/show_bug.cgi?id=1175245
Luís Henriques 08d094
Fixes: 9ae326a69004 ("CacheFiles: A cache that backs onto a mounted filesystem")
Luís Henriques 08d094
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Luís Henriques 08d094
Signed-off-by: David Howells <dhowells@redhat.com>
Luís Henriques 08d094
Acked-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Luís Henriques 08d094
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Luís Henriques 08d094
[adjusted context as we don't have 10d83e11a582
Luís Henriques 08d094
 ("cachefiles: drop direct usage of ->bmap method.")]
Luís Henriques 08d094
Luís Henriques 08d094
Acked-by: Luís Henriques <lhenriques@suse.de>
Luís Henriques 08d094
Luís Henriques 08d094
---
Luís Henriques 08d094
 fs/cachefiles/rdwr.c |    2 --
Luís Henriques 08d094
 1 file changed, 2 deletions(-)
Luís Henriques 08d094
Luís Henriques 08d094
--- a/fs/cachefiles/rdwr.c
Luís Henriques 08d094
+++ b/fs/cachefiles/rdwr.c
Luís Henriques 08d094
@@ -418,7 +418,6 @@ int cachefiles_read_or_alloc_page(struct
Luís Henriques 08d094
 	inode = d_backing_inode(object->backer);
Luís Henriques 08d094
 	ASSERT(S_ISREG(inode->i_mode));
Luís Henriques 08d094
 	ASSERT(inode->i_mapping->a_ops->bmap);
Luís Henriques 08d094
-	ASSERT(inode->i_mapping->a_ops->readpages);
Luís Henriques 08d094
 
Luís Henriques 08d094
 	/* calculate the shift required to use bmap */
Luís Henriques 08d094
 	shift = PAGE_SHIFT - inode->i_sb->s_blocksize_bits;
Luís Henriques 08d094
@@ -717,7 +716,6 @@ int cachefiles_read_or_alloc_pages(struc
Luís Henriques 08d094
 	inode = d_backing_inode(object->backer);
Luís Henriques 08d094
 	ASSERT(S_ISREG(inode->i_mode));
Luís Henriques 08d094
 	ASSERT(inode->i_mapping->a_ops->bmap);
Luís Henriques 08d094
-	ASSERT(inode->i_mapping->a_ops->readpages);
Luís Henriques 08d094
 
Luís Henriques 08d094
 	/* calculate the shift required to use bmap */
Luís Henriques 08d094
 	shift = PAGE_SHIFT - inode->i_sb->s_blocksize_bits;