* [PREVIEW] [PATCH V3] staging: erofs: replace BUG_ON with DBG_BUGON in data.c
@ 2018-08-24 0:58 Chen Gong
2018-08-24 2:23 ` Gao Xiang
2018-08-24 15:16 ` Chao Yu
0 siblings, 2 replies; 3+ messages in thread
From: Chen Gong @ 2018-08-24 0:58 UTC (permalink / raw)
This patch replace BUG_ON with DBG_BUGON in data.c, and add necessary
error handler.
Signed-off-by: Chen Gong <gongchen4 at huawei.com>
---
drivers/staging/erofs/data.c | 31 ++++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/drivers/staging/erofs/data.c b/drivers/staging/erofs/data.c
index 0570af5..8635458 100644
--- a/drivers/staging/erofs/data.c
+++ b/drivers/staging/erofs/data.c
@@ -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);
@@ -108,12 +108,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);
@@ -140,18 +140,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
@@ -207,7 +216,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;
@@ -250,7 +259,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);
@@ -260,7 +269,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);
@@ -287,7 +296,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))
@@ -355,7 +364,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 != NULL); /* since we have only one bio -- must be NULL */
return 0;
}
@@ -393,7 +402,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))
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PREVIEW] [PATCH V3] staging: erofs: replace BUG_ON with DBG_BUGON in data.c
2018-08-24 0:58 [PREVIEW] [PATCH V3] staging: erofs: replace BUG_ON with DBG_BUGON in data.c Chen Gong
@ 2018-08-24 2:23 ` Gao Xiang
2018-08-24 15:16 ` Chao Yu
1 sibling, 0 replies; 3+ messages in thread
From: Gao Xiang @ 2018-08-24 2:23 UTC (permalink / raw)
On 2018/8/24 8:58, Chen Gong wrote:
> This patch replace BUG_ON with DBG_BUGON in data.c, and add necessary
> error handler.
>
> Signed-off-by: Chen Gong <gongchen4 at huawei.com>
Looks fine for me. Thanks for your patch.
Reviewed-by: Gao Xiang <gaoxiang25 at huawei.com>
Thanks,
Gao Xiang
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PREVIEW] [PATCH V3] staging: erofs: replace BUG_ON with DBG_BUGON in data.c
2018-08-24 0:58 [PREVIEW] [PATCH V3] staging: erofs: replace BUG_ON with DBG_BUGON in data.c Chen Gong
2018-08-24 2:23 ` Gao Xiang
@ 2018-08-24 15:16 ` Chao Yu
1 sibling, 0 replies; 3+ messages in thread
From: Chao Yu @ 2018-08-24 15:16 UTC (permalink / raw)
On 2018/8/24 8:58, Chen Gong wrote:
> This patch replace BUG_ON with DBG_BUGON in data.c, and add necessary
> error handler.
>
> Signed-off-by: Chen Gong <gongchen4 at huawei.com>
Reviewed-by: Chao Yu <yuchao0 at huawei.com>
Thanks,
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-08-24 15:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-24 0:58 [PREVIEW] [PATCH V3] staging: erofs: replace BUG_ON with DBG_BUGON in data.c Chen Gong
2018-08-24 2:23 ` Gao Xiang
2018-08-24 15:16 ` Chao Yu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.