Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb5913df authored by Chen Gong's avatar Chen Gong Committed by Greg Kroah-Hartman
Browse files

staging: erofs: replace BUG_ON with DBG_BUGON in data.c



commit 9141b60cf6a53c99f8a9309bf8e1c6650a6785c1 upstream.

This patch replace BUG_ON with DBG_BUGON in data.c, and add necessary
error handler.

Signed-off-by: default avatarChen Gong <gongchen4@huawei.com>
Reviewed-by: default avatarGao Xiang <gaoxiang25@huawei.com>
Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarGao Xiang <gaoxiang25@huawei.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 34ac4c14
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ static inline void read_endio(struct bio *bio)
		struct page *page = bvec->bv_page;

		/* page is already locked */
		BUG_ON(PageUptodate(page));
		DBG_BUGON(PageUptodate(page));

		if (unlikely(err))
			SetPageError(page);
@@ -91,12 +91,12 @@ static int erofs_map_blocks_flatmode(struct inode *inode,
	struct erofs_map_blocks *map,
	int flags)
{
	int err = 0;
	erofs_blk_t nblocks, lastblk;
	u64 offset = map->m_la;
	struct erofs_vnode *vi = EROFS_V(inode);

	trace_erofs_map_blocks_flatmode_enter(inode, map, flags);
	BUG_ON(is_inode_layout_compression(inode));

	nblocks = DIV_ROUND_UP(inode->i_size, PAGE_SIZE);
	lastblk = nblocks - is_inode_layout_inline(inode);
@@ -123,18 +123,27 @@ static int erofs_map_blocks_flatmode(struct inode *inode,
		map->m_plen = inode->i_size - offset;

		/* inline data should locate in one meta block */
		BUG_ON(erofs_blkoff(map->m_pa) + map->m_plen > PAGE_SIZE);
		if (erofs_blkoff(map->m_pa) + map->m_plen > PAGE_SIZE) {
			DBG_BUGON(1);
			err = -EIO;
			goto err_out;
		}

		map->m_flags |= EROFS_MAP_META;
	} else {
		errln("internal error @ nid: %llu (size %llu), m_la 0x%llx",
			vi->nid, inode->i_size, map->m_la);
		BUG();
		DBG_BUGON(1);
		err = -EIO;
		goto err_out;
	}

out:
	map->m_llen = map->m_plen;

err_out:
	trace_erofs_map_blocks_flatmode_exit(inode, map, flags, 0);
	return 0;
	return err;
}

#ifdef CONFIG_EROFS_FS_ZIP
@@ -190,7 +199,7 @@ static inline struct bio *erofs_read_raw_page(
	erofs_off_t current_block = (erofs_off_t)page->index;
	int err;

	BUG_ON(!nblocks);
	DBG_BUGON(!nblocks);

	if (PageUptodate(page)) {
		err = 0;
@@ -233,7 +242,7 @@ static inline struct bio *erofs_read_raw_page(
		}

		/* for RAW access mode, m_plen must be equal to m_llen */
		BUG_ON(map.m_plen != map.m_llen);
		DBG_BUGON(map.m_plen != map.m_llen);

		blknr = erofs_blknr(map.m_pa);
		blkoff = erofs_blkoff(map.m_pa);
@@ -243,7 +252,7 @@ static inline struct bio *erofs_read_raw_page(
			void *vsrc, *vto;
			struct page *ipage;

			BUG_ON(map.m_plen > PAGE_SIZE);
			DBG_BUGON(map.m_plen > PAGE_SIZE);

			ipage = erofs_get_meta_page(inode->i_sb, blknr, 0);

@@ -270,7 +279,7 @@ static inline struct bio *erofs_read_raw_page(
		}

		/* pa must be block-aligned for raw reading */
		BUG_ON(erofs_blkoff(map.m_pa) != 0);
		DBG_BUGON(erofs_blkoff(map.m_pa));

		/* max # of continuous pages */
		if (nblocks > DIV_ROUND_UP(map.m_plen, PAGE_SIZE))
@@ -331,7 +340,7 @@ static int erofs_raw_access_readpage(struct file *file, struct page *page)
	if (IS_ERR(bio))
		return PTR_ERR(bio);

	BUG_ON(bio != NULL);	/* since we have only one bio -- must be NULL */
	DBG_BUGON(bio);	/* since we have only one bio -- must be NULL */
	return 0;
}

@@ -369,7 +378,7 @@ static int erofs_raw_access_readpages(struct file *filp,
		/* pages could still be locked */
		put_page(page);
	}
	BUG_ON(!list_empty(pages));
	DBG_BUGON(!list_empty(pages));

	/* the rare case (end in gaps) */
	if (unlikely(bio != NULL))