Commit c3689201 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Liu Shixin
Browse files

shmem: move the shmem_mapping assert into shmem_get_folio_gfp

mainline inclusion
from mainline-v6.9-rc1
commit 1cd81faaf61b42307e81f2dd173934005c220a64
category: cleanup
bugzilla: https://gitee.com/openeuler/kernel/issues/IAIHPC

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1cd81faaf61b42307e81f2dd173934005c220a64



--------------------------------

Move the check that the inode really is a shmemfs one from
shmem_read_folio_gfp to shmem_get_folio_gfp given that shmem_get_folio
can also be called from outside of shmem.c.  Also turn it into a
WARN_ON_ONCE and error return instead of BUG_ON to be less severe.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatar"Matthew Wilcox (Oracle)" <willy@infradead.org>
Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
[ Dep-of: e7a2ab7b3bb5 (mm: shmem: add mTHP support for anonymous shmem) ]
Signed-off-by: default avatarLiu Shixin <liushixin2@huawei.com>
parent a4f89b24
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1999,6 +1999,9 @@ static int shmem_get_folio_gfp(struct inode *inode, pgoff_t index,
	int error;
	bool alloced;

	if (WARN_ON_ONCE(!shmem_mapping(inode->i_mapping)))
		return -EINVAL;

	if (index > (MAX_LFS_FILESIZE >> PAGE_SHIFT))
		return -EFBIG;
repeat:
@@ -4925,7 +4928,6 @@ struct folio *shmem_read_folio_gfp(struct address_space *mapping,
	struct folio *folio;
	int error;

	BUG_ON(!shmem_mapping(mapping));
	error = shmem_get_folio_gfp(inode, index, &folio, SGP_CACHE,
				    gfp, NULL, NULL);
	if (error)