Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp317595ybl; Thu, 29 Aug 2019 23:44:56 -0700 (PDT) X-Google-Smtp-Source: APXvYqxptRjyq2PyAGSFlNDhyQwu5CzLvLOlPnfG82ZtsIzs8PLyfWk/lDPXFy92IZkrGt/0AhBe X-Received: by 2002:a63:f926:: with SMTP id h38mr11775758pgi.80.1567147496640; Thu, 29 Aug 2019 23:44:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567147496; cv=none; d=google.com; s=arc-20160816; b=bF2HcJPdzbDkl1ui939sTzrSTGy5NGKzIGm7pA06X7lhO8obLH+dR7Ek1xJ3/eD35Y jbuBYb2bXE7IYNaOlPJ2TMRKLwQsEKyEDSEY/0ukqDf/ezi7NgFB9H5rjUbuBdmc6S3B 1adnEQNnPp4gOtYJoGXUsFqcXXiCLWIXtTsJrhcQ8b9BZ/cYJ4HQE8gTpVZrb89MJCdd zPt7LjD8k6Jhhb0ufXKPyPgHubbiHdNNz4jl/ZKc8a7uTY0TcEH3WOGjsW/J7eZG00iJ PWdG2orbnBm11IJKTu/zByzkgIDDOawJszPORVFvKLDSz5RNrEfzAdD3NU0PbvI9kF7V cL0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=1kmubVY9BUCgopPRtvQSM4HamLNwjG7ZfjmgpWaVb1M=; b=Srp+O12jj1mxiqWIgj67DoIwlFvVnfwP0bB92Nvyt6cl3DRxvTObKSuk/MX/Wr2u0h CrsLvcZAcl6ovRKS4dgFcNT4WWpATWaQHp67ZYR8AqLdno6t9/pLTMVH/BEBFQC13ANw KzLk33QmB5zMHv2MFEBwjFXfOUqr7UwjRJhD3QS/LwzJw1/RNsCDNeUBOdGOV9YoZYJv BNMOiL8+EDIE34tPqK9OH29pdhBGjfjr6UNtcGU//i+/nhzPd+yFb7CP+2ECRLN8w0z+ JXfDBiDc3HXr1hubgZ40qmHYPaybFgKpvErx3N49Gk0hKoSnAEfIJqg+peH/Vm+X5gOZ hkXg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b6si3947482plr.52.2019.08.29.23.44.40; Thu, 29 Aug 2019 23:44:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727904AbfH3Gnm (ORCPT + 99 others); Fri, 30 Aug 2019 02:43:42 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:38170 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726090AbfH3Gnm (ORCPT ); Fri, 30 Aug 2019 02:43:42 -0400 Received: from DGGEMS406-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id A4091EB832095B5057B9; Fri, 30 Aug 2019 14:43:38 +0800 (CST) Received: from [10.134.22.195] (10.134.22.195) by smtp.huawei.com (10.3.19.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 30 Aug 2019 14:43:32 +0800 Subject: Re: [PATCH v3 6/7] erofs: remove all likely/unlikely annotations To: Gao Xiang CC: Dan Carpenter , Christoph Hellwig , Joe Perches , Greg Kroah-Hartman , , LKML , , Chao Yu , Miao Xie , , "Fang Wei" References: <20190830032006.GA20217@architecture4> <20190830033643.51019-1-gaoxiang25@huawei.com> <20190830033643.51019-6-gaoxiang25@huawei.com> <4f2d6464-39f0-4134-f7ba-eec3b09b22d8@huawei.com> <20190830063107.GA106716@architecture4> From: Chao Yu Message-ID: Date: Fri, 30 Aug 2019 14:43:31 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20190830063107.GA106716@architecture4> Content-Type: text/plain; charset="windows-1252" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.134.22.195] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Xiang, the code itself looks clean to me. Reviewed-by: Chao Yu Thanks, On 2019/8/30 14:31, Gao Xiang wrote: > Hi Chao, > > On Fri, Aug 30, 2019 at 02:25:13PM +0800, Chao Yu wrote: >> On 2019/8/30 11:36, Gao Xiang wrote: >>> As Dan Carpenter suggested [1], I have to remove >>> all erofs likely/unlikely annotations. >>> >>> [1] https://lore.kernel.org/linux-fsdevel/20190829154346.GK23584@kadam/ >>> Reported-by: Dan Carpenter >>> Signed-off-by: Gao Xiang >> >> I suggest we can modify this by following good example rather than removing them >> all, at least, the fuzzed random fields of disk layout handling should be very >> rare case, I guess it's fine to use unlikely. >> >> To Dan, thoughts? > > I think let's stop talking this anymore, I think we can do such > a commit now and I think "folks have their own thoughts on it". > > Could you kindly review and check this one? I did it by 'sed', could > you double check it? > > Thanks, > Gao Xiang > >> >> Thanks, >> >>> --- >>> no change. >>> >>> fs/erofs/data.c | 22 ++++++++++----------- >>> fs/erofs/decompressor.c | 2 +- >>> fs/erofs/dir.c | 14 ++++++------- >>> fs/erofs/inode.c | 10 +++++----- >>> fs/erofs/internal.h | 4 ++-- >>> fs/erofs/namei.c | 14 ++++++------- >>> fs/erofs/super.c | 16 +++++++-------- >>> fs/erofs/utils.c | 12 +++++------ >>> fs/erofs/xattr.c | 12 +++++------ >>> fs/erofs/zdata.c | 44 ++++++++++++++++++++--------------------- >>> fs/erofs/zmap.c | 8 ++++---- >>> fs/erofs/zpvec.h | 6 +++--- >>> 12 files changed, 82 insertions(+), 82 deletions(-) >>> >>> diff --git a/fs/erofs/data.c b/fs/erofs/data.c >>> index fda16ec8863e..0f2f1a839372 100644 >>> --- a/fs/erofs/data.c >>> +++ b/fs/erofs/data.c >>> @@ -27,7 +27,7 @@ static inline void read_endio(struct bio *bio) >>> /* page is already locked */ >>> DBG_BUGON(PageUptodate(page)); >>> >>> - if (unlikely(err)) >>> + if (err) >>> SetPageError(page); >>> else >>> SetPageUptodate(page); >>> @@ -53,7 +53,7 @@ struct page *__erofs_get_meta_page(struct super_block *sb, >>> >>> repeat: >>> page = find_or_create_page(mapping, blkaddr, gfp); >>> - if (unlikely(!page)) { >>> + if (!page) { >>> DBG_BUGON(nofail); >>> return ERR_PTR(-ENOMEM); >>> } >>> @@ -70,7 +70,7 @@ struct page *__erofs_get_meta_page(struct super_block *sb, >>> } >>> >>> err = bio_add_page(bio, page, PAGE_SIZE, 0); >>> - if (unlikely(err != PAGE_SIZE)) { >>> + if (err != PAGE_SIZE) { >>> err = -EFAULT; >>> goto err_out; >>> } >>> @@ -81,7 +81,7 @@ struct page *__erofs_get_meta_page(struct super_block *sb, >>> lock_page(page); >>> >>> /* this page has been truncated by others */ >>> - if (unlikely(page->mapping != mapping)) { >>> + if (page->mapping != mapping) { >>> unlock_repeat: >>> unlock_page(page); >>> put_page(page); >>> @@ -89,7 +89,7 @@ struct page *__erofs_get_meta_page(struct super_block *sb, >>> } >>> >>> /* more likely a read error */ >>> - if (unlikely(!PageUptodate(page))) { >>> + if (!PageUptodate(page)) { >>> if (io_retries) { >>> --io_retries; >>> goto unlock_repeat; >>> @@ -120,7 +120,7 @@ static int erofs_map_blocks_flatmode(struct inode *inode, >>> nblocks = DIV_ROUND_UP(inode->i_size, PAGE_SIZE); >>> lastblk = nblocks - is_inode_flat_inline(inode); >>> >>> - if (unlikely(offset >= inode->i_size)) { >>> + if (offset >= inode->i_size) { >>> /* leave out-of-bound access unmapped */ >>> map->m_flags = 0; >>> map->m_plen = 0; >>> @@ -170,7 +170,7 @@ static int erofs_map_blocks_flatmode(struct inode *inode, >>> int erofs_map_blocks(struct inode *inode, >>> struct erofs_map_blocks *map, int flags) >>> { >>> - if (unlikely(is_inode_layout_compression(inode))) { >>> + if (is_inode_layout_compression(inode)) { >>> int err = z_erofs_map_blocks_iter(inode, map, flags); >>> >>> if (map->mpage) { >>> @@ -218,11 +218,11 @@ static inline struct bio *erofs_read_raw_page(struct bio *bio, >>> unsigned int blkoff; >>> >>> err = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW); >>> - if (unlikely(err)) >>> + if (err) >>> goto err_out; >>> >>> /* zero out the holed page */ >>> - if (unlikely(!(map.m_flags & EROFS_MAP_MAPPED))) { >>> + if (!(map.m_flags & EROFS_MAP_MAPPED)) { >>> zero_user_segment(page, 0, PAGE_SIZE); >>> SetPageUptodate(page); >>> >>> @@ -315,7 +315,7 @@ static inline struct bio *erofs_read_raw_page(struct bio *bio, >>> submit_bio_out: >>> __submit_bio(bio, REQ_OP_READ, 0); >>> >>> - return unlikely(err) ? ERR_PTR(err) : NULL; >>> + return err ? ERR_PTR(err) : NULL; >>> } >>> >>> /* >>> @@ -377,7 +377,7 @@ static int erofs_raw_access_readpages(struct file *filp, >>> DBG_BUGON(!list_empty(pages)); >>> >>> /* the rare case (end in gaps) */ >>> - if (unlikely(bio)) >>> + if (bio) >>> __submit_bio(bio, REQ_OP_READ, 0); >>> return 0; >>> } >>> diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c >>> index 5f4b7f302863..df349888f911 100644 >>> --- a/fs/erofs/decompressor.c >>> +++ b/fs/erofs/decompressor.c >>> @@ -78,7 +78,7 @@ static int lz4_prepare_destpages(struct z_erofs_decompress_req *rq, >>> get_page(victim); >>> } else { >>> victim = erofs_allocpage(pagepool, GFP_KERNEL, false); >>> - if (unlikely(!victim)) >>> + if (!victim) >>> return -ENOMEM; >>> victim->mapping = Z_EROFS_MAPPING_STAGING; >>> } >>> diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c >>> index 1976e60e5174..6a5b43f7fb29 100644 >>> --- a/fs/erofs/dir.c >>> +++ b/fs/erofs/dir.c >>> @@ -45,8 +45,8 @@ static int erofs_fill_dentries(struct inode *dir, struct dir_context *ctx, >>> de_namelen = le16_to_cpu(de[1].nameoff) - nameoff; >>> >>> /* a corrupted entry is found */ >>> - if (unlikely(nameoff + de_namelen > maxsize || >>> - de_namelen > EROFS_NAME_LEN)) { >>> + if (nameoff + de_namelen > maxsize || >>> + de_namelen > EROFS_NAME_LEN) { >>> errln("bogus dirent @ nid %llu", EROFS_V(dir)->nid); >>> DBG_BUGON(1); >>> return -EFSCORRUPTED; >>> @@ -94,8 +94,8 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) >>> >>> nameoff = le16_to_cpu(de->nameoff); >>> >>> - if (unlikely(nameoff < sizeof(struct erofs_dirent) || >>> - nameoff >= PAGE_SIZE)) { >>> + if (nameoff < sizeof(struct erofs_dirent) || >>> + nameoff >= PAGE_SIZE) { >>> errln("%s, invalid de[0].nameoff %u @ nid %llu", >>> __func__, nameoff, EROFS_V(dir)->nid); >>> err = -EFSCORRUPTED; >>> @@ -106,11 +106,11 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) >>> dirsize - ctx->pos + ofs, PAGE_SIZE); >>> >>> /* search dirents at the arbitrary position */ >>> - if (unlikely(initial)) { >>> + if (initial) { >>> initial = false; >>> >>> ofs = roundup(ofs, sizeof(struct erofs_dirent)); >>> - if (unlikely(ofs >= nameoff)) >>> + if (ofs >= nameoff) >>> goto skip_this; >>> } >>> >>> @@ -123,7 +123,7 @@ static int erofs_readdir(struct file *f, struct dir_context *ctx) >>> >>> ctx->pos = blknr_to_addr(i) + ofs; >>> >>> - if (unlikely(err)) >>> + if (err) >>> break; >>> ++i; >>> ofs = 0; >>> diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c >>> index cf31554075c9..871a6d8ed6f9 100644 >>> --- a/fs/erofs/inode.c >>> +++ b/fs/erofs/inode.c >>> @@ -18,7 +18,7 @@ static int read_inode(struct inode *inode, void *data) >>> >>> vi->datamode = __inode_data_mapping(advise); >>> >>> - if (unlikely(vi->datamode >= EROFS_INODE_LAYOUT_MAX)) { >>> + if (vi->datamode >= EROFS_INODE_LAYOUT_MAX) { >>> errln("unsupported data mapping %u of nid %llu", >>> vi->datamode, vi->nid); >>> DBG_BUGON(1); >>> @@ -133,13 +133,13 @@ static int fill_inline_data(struct inode *inode, void *data, >>> if (S_ISLNK(inode->i_mode) && inode->i_size < PAGE_SIZE) { >>> char *lnk = erofs_kmalloc(sbi, inode->i_size + 1, GFP_KERNEL); >>> >>> - if (unlikely(!lnk)) >>> + if (!lnk) >>> return -ENOMEM; >>> >>> m_pofs += vi->inode_isize + vi->xattr_isize; >>> >>> /* inline symlink data shouldn't across page boundary as well */ >>> - if (unlikely(m_pofs + inode->i_size > PAGE_SIZE)) { >>> + if (m_pofs + inode->i_size > PAGE_SIZE) { >>> kfree(lnk); >>> errln("inline data cross block boundary @ nid %llu", >>> vi->nid); >>> @@ -268,7 +268,7 @@ struct inode *erofs_iget(struct super_block *sb, >>> { >>> struct inode *inode = erofs_iget_locked(sb, nid); >>> >>> - if (unlikely(!inode)) >>> + if (!inode) >>> return ERR_PTR(-ENOMEM); >>> >>> if (inode->i_state & I_NEW) { >>> @@ -278,7 +278,7 @@ struct inode *erofs_iget(struct super_block *sb, >>> vi->nid = nid; >>> >>> err = fill_inode(inode, isdir); >>> - if (likely(!err)) >>> + if (!err) >>> unlock_new_inode(inode); >>> else { >>> iget_failed(inode); >>> diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h >>> index 620b73fcc416..141ea424587d 100644 >>> --- a/fs/erofs/internal.h >>> +++ b/fs/erofs/internal.h >>> @@ -424,7 +424,7 @@ static inline struct bio *erofs_grab_bio(struct super_block *sb, >>> do { >>> if (nr_pages == 1) { >>> bio = bio_alloc(gfp | (nofail ? __GFP_NOFAIL : 0), 1); >>> - if (unlikely(!bio)) { >>> + if (!bio) { >>> DBG_BUGON(nofail); >>> return ERR_PTR(-ENOMEM); >>> } >>> @@ -432,7 +432,7 @@ static inline struct bio *erofs_grab_bio(struct super_block *sb, >>> } >>> bio = bio_alloc(gfp, nr_pages); >>> nr_pages /= 2; >>> - } while (unlikely(!bio)); >>> + } while (!bio); >>> >>> bio->bi_end_io = endio; >>> bio_set_dev(bio, sb->s_bdev); >>> diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c >>> index 8832b5d95d91..c1068ad0535e 100644 >>> --- a/fs/erofs/namei.c >>> +++ b/fs/erofs/namei.c >>> @@ -64,7 +64,7 @@ static struct erofs_dirent *find_target_dirent(struct erofs_qstr *name, >>> unsigned int matched = min(startprfx, endprfx); >>> struct erofs_qstr dname = { >>> .name = data + nameoff, >>> - .end = unlikely(mid >= ndirents - 1) ? >>> + .end = mid >= ndirents - 1 ? >>> data + dirblksize : >>> data + nameoff_from_disk(de[mid + 1].nameoff, >>> dirblksize) >>> @@ -73,7 +73,7 @@ static struct erofs_dirent *find_target_dirent(struct erofs_qstr *name, >>> /* string comparison without already matched prefix */ >>> int ret = dirnamecmp(name, &dname, &matched); >>> >>> - if (unlikely(!ret)) { >>> + if (!ret) { >>> return de + mid; >>> } else if (ret > 0) { >>> head = mid + 1; >>> @@ -113,7 +113,7 @@ static struct page *find_target_block_classic(struct inode *dir, >>> unsigned int matched; >>> struct erofs_qstr dname; >>> >>> - if (unlikely(!ndirents)) { >>> + if (!ndirents) { >>> kunmap_atomic(de); >>> put_page(page); >>> errln("corrupted dir block %d @ nid %llu", >>> @@ -137,7 +137,7 @@ static struct page *find_target_block_classic(struct inode *dir, >>> diff = dirnamecmp(name, &dname, &matched); >>> kunmap_atomic(de); >>> >>> - if (unlikely(!diff)) { >>> + if (!diff) { >>> *_ndirents = 0; >>> goto out; >>> } else if (diff > 0) { >>> @@ -174,7 +174,7 @@ int erofs_namei(struct inode *dir, >>> struct erofs_dirent *de; >>> struct erofs_qstr qn; >>> >>> - if (unlikely(!dir->i_size)) >>> + if (!dir->i_size) >>> return -ENOENT; >>> >>> qn.name = name->name; >>> @@ -221,7 +221,7 @@ static struct dentry *erofs_lookup(struct inode *dir, >>> trace_erofs_lookup(dir, dentry, flags); >>> >>> /* file name exceeds fs limit */ >>> - if (unlikely(dentry->d_name.len > EROFS_NAME_LEN)) >>> + if (dentry->d_name.len > EROFS_NAME_LEN) >>> return ERR_PTR(-ENAMETOOLONG); >>> >>> /* false uninitialized warnings on gcc 4.8.x */ >>> @@ -230,7 +230,7 @@ static struct dentry *erofs_lookup(struct inode *dir, >>> if (err == -ENOENT) { >>> /* negative dentry */ >>> inode = NULL; >>> - } else if (unlikely(err)) { >>> + } else if (err) { >>> inode = ERR_PTR(err); >>> } else { >>> debugln("%s, %s (nid %llu) found, d_type %u", __func__, >>> diff --git a/fs/erofs/super.c b/fs/erofs/super.c >>> index 556aae5426d6..0c412de33315 100644 >>> --- a/fs/erofs/super.c >>> +++ b/fs/erofs/super.c >>> @@ -92,7 +92,7 @@ static int superblock_read(struct super_block *sb) >>> >>> blkszbits = layout->blkszbits; >>> /* 9(512 bytes) + LOG_SECTORS_PER_BLOCK == LOG_BLOCK_SIZE */ >>> - if (unlikely(blkszbits != LOG_BLOCK_SIZE)) { >>> + if (blkszbits != LOG_BLOCK_SIZE) { >>> errln("blksize %u isn't supported on this platform", >>> 1 << blkszbits); >>> goto out; >>> @@ -364,7 +364,7 @@ static int erofs_init_managed_cache(struct super_block *sb) >>> struct erofs_sb_info *const sbi = EROFS_SB(sb); >>> struct inode *const inode = new_inode(sb); >>> >>> - if (unlikely(!inode)) >>> + if (!inode) >>> return -ENOMEM; >>> >>> set_nlink(inode, 1); >>> @@ -391,13 +391,13 @@ static int erofs_fill_super(struct super_block *sb, void *data, int silent) >>> >>> sb->s_magic = EROFS_SUPER_MAGIC; >>> >>> - if (unlikely(!sb_set_blocksize(sb, EROFS_BLKSIZ))) { >>> + if (!sb_set_blocksize(sb, EROFS_BLKSIZ)) { >>> errln("failed to set erofs blksize"); >>> return -EINVAL; >>> } >>> >>> sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); >>> - if (unlikely(!sbi)) >>> + if (!sbi) >>> return -ENOMEM; >>> >>> sb->s_fs_info = sbi; >>> @@ -418,7 +418,7 @@ static int erofs_fill_super(struct super_block *sb, void *data, int silent) >>> default_options(sbi); >>> >>> err = parse_options(sb, data); >>> - if (unlikely(err)) >>> + if (err) >>> return err; >>> >>> if (!silent) >>> @@ -438,7 +438,7 @@ static int erofs_fill_super(struct super_block *sb, void *data, int silent) >>> if (IS_ERR(inode)) >>> return PTR_ERR(inode); >>> >>> - if (unlikely(!S_ISDIR(inode->i_mode))) { >>> + if (!S_ISDIR(inode->i_mode)) { >>> errln("rootino(nid %llu) is not a directory(i_mode %o)", >>> ROOT_NID(sbi), inode->i_mode); >>> iput(inode); >>> @@ -446,13 +446,13 @@ static int erofs_fill_super(struct super_block *sb, void *data, int silent) >>> } >>> >>> sb->s_root = d_make_root(inode); >>> - if (unlikely(!sb->s_root)) >>> + if (!sb->s_root) >>> return -ENOMEM; >>> >>> erofs_shrinker_register(sb); >>> /* sb->s_umount is already locked, SB_ACTIVE and SB_BORN are not set */ >>> err = erofs_init_managed_cache(sb); >>> - if (unlikely(err)) >>> + if (err) >>> return err; >>> >>> if (!silent) >>> diff --git a/fs/erofs/utils.c b/fs/erofs/utils.c >>> index 1dd041aa0f5a..d92b3e753a6f 100644 >>> --- a/fs/erofs/utils.c >>> +++ b/fs/erofs/utils.c >>> @@ -46,14 +46,14 @@ static int erofs_workgroup_get(struct erofs_workgroup *grp) >>> >>> repeat: >>> o = erofs_wait_on_workgroup_freezed(grp); >>> - if (unlikely(o <= 0)) >>> + if (o <= 0) >>> return -1; >>> >>> - if (unlikely(atomic_cmpxchg(&grp->refcount, o, o + 1) != o)) >>> + if (atomic_cmpxchg(&grp->refcount, o, o + 1) != o) >>> goto repeat; >>> >>> /* decrease refcount paired by erofs_workgroup_put */ >>> - if (unlikely(o == 1)) >>> + if (o == 1) >>> atomic_long_dec(&erofs_global_shrink_cnt); >>> return 0; >>> } >>> @@ -91,7 +91,7 @@ int erofs_register_workgroup(struct super_block *sb, >>> int err; >>> >>> /* grp shouldn't be broken or used before */ >>> - if (unlikely(atomic_read(&grp->refcount) != 1)) { >>> + if (atomic_read(&grp->refcount) != 1) { >>> DBG_BUGON(1); >>> return -EINVAL; >>> } >>> @@ -113,7 +113,7 @@ int erofs_register_workgroup(struct super_block *sb, >>> __erofs_workgroup_get(grp); >>> >>> err = radix_tree_insert(&sbi->workstn_tree, grp->index, grp); >>> - if (unlikely(err)) >>> + if (err) >>> /* >>> * it's safe to decrease since the workgroup isn't visible >>> * and refcount >= 2 (cannot be freezed). >>> @@ -212,7 +212,7 @@ static unsigned long erofs_shrink_workstation(struct erofs_sb_info *sbi, >>> continue; >>> >>> ++freed; >>> - if (unlikely(!--nr_shrink)) >>> + if (!--nr_shrink) >>> break; >>> } >>> xa_unlock(&sbi->workstn_tree); >>> diff --git a/fs/erofs/xattr.c b/fs/erofs/xattr.c >>> index 7ef8d4bb45cd..620cbc15f4d0 100644 >>> --- a/fs/erofs/xattr.c >>> +++ b/fs/erofs/xattr.c >>> @@ -19,7 +19,7 @@ struct xattr_iter { >>> static inline void xattr_iter_end(struct xattr_iter *it, bool atomic) >>> { >>> /* the only user of kunmap() is 'init_inode_xattrs' */ >>> - if (unlikely(!atomic)) >>> + if (!atomic) >>> kunmap(it->page); >>> else >>> kunmap_atomic(it->kaddr); >>> @@ -72,7 +72,7 @@ static int init_inode_xattrs(struct inode *inode) >>> ret = -EOPNOTSUPP; >>> goto out_unlock; >>> } else if (vi->xattr_isize < sizeof(struct erofs_xattr_ibody_header)) { >>> - if (unlikely(vi->xattr_isize)) { >>> + if (vi->xattr_isize) { >>> errln("bogus xattr ibody @ nid %llu", vi->nid); >>> DBG_BUGON(1); >>> ret = -EFSCORRUPTED; >>> @@ -112,7 +112,7 @@ static int init_inode_xattrs(struct inode *inode) >>> it.ofs += sizeof(struct erofs_xattr_ibody_header); >>> >>> for (i = 0; i < vi->xattr_shared_count; ++i) { >>> - if (unlikely(it.ofs >= EROFS_BLKSIZ)) { >>> + if (it.ofs >= EROFS_BLKSIZ) { >>> /* cannot be unaligned */ >>> DBG_BUGON(it.ofs != EROFS_BLKSIZ); >>> xattr_iter_end(&it, atomic_map); >>> @@ -189,7 +189,7 @@ static int inline_xattr_iter_begin(struct xattr_iter *it, >>> unsigned int xattr_header_sz, inline_xattr_ofs; >>> >>> xattr_header_sz = inlinexattr_header_size(inode); >>> - if (unlikely(xattr_header_sz >= vi->xattr_isize)) { >>> + if (xattr_header_sz >= vi->xattr_isize) { >>> DBG_BUGON(xattr_header_sz > vi->xattr_isize); >>> return -ENOATTR; >>> } >>> @@ -234,7 +234,7 @@ static int xattr_foreach(struct xattr_iter *it, >>> unsigned int entry_sz = erofs_xattr_entry_size(&entry); >>> >>> /* xattr on-disk corruption: xattr entry beyond xattr_isize */ >>> - if (unlikely(*tlimit < entry_sz)) { >>> + if (*tlimit < entry_sz) { >>> DBG_BUGON(1); >>> return -EFSCORRUPTED; >>> } >>> @@ -436,7 +436,7 @@ int erofs_getxattr(struct inode *inode, int index, >>> int ret; >>> struct getxattr_iter it; >>> >>> - if (unlikely(!name)) >>> + if (!name) >>> return -EINVAL; >>> >>> ret = init_inode_xattrs(inode); >>> diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c >>> index b32ad585237c..653bde0a619a 100644 >>> --- a/fs/erofs/zdata.c >>> +++ b/fs/erofs/zdata.c >>> @@ -230,7 +230,7 @@ int erofs_try_to_free_all_cached_pages(struct erofs_sb_info *sbi, >>> if (!trylock_page(page)) >>> return -EBUSY; >>> >>> - if (unlikely(page->mapping != mapping)) >>> + if (page->mapping != mapping) >>> continue; >>> >>> /* barrier is implied in the following 'unlock_page' */ >>> @@ -358,7 +358,7 @@ static struct z_erofs_collection *cllookup(struct z_erofs_collector *clt, >>> } >>> >>> cl = z_erofs_primarycollection(pcl); >>> - if (unlikely(cl->pageofs != (map->m_la & ~PAGE_MASK))) { >>> + if (cl->pageofs != (map->m_la & ~PAGE_MASK)) { >>> DBG_BUGON(1); >>> erofs_workgroup_put(grp); >>> return ERR_PTR(-EFSCORRUPTED); >>> @@ -406,7 +406,7 @@ static struct z_erofs_collection *clregister(struct z_erofs_collector *clt, >>> >>> /* no available workgroup, let's allocate one */ >>> pcl = kmem_cache_alloc(pcluster_cachep, GFP_NOFS); >>> - if (unlikely(!pcl)) >>> + if (!pcl) >>> return ERR_PTR(-ENOMEM); >>> >>> init_always(pcl); >>> @@ -474,7 +474,7 @@ static int z_erofs_collector_begin(struct z_erofs_collector *clt, >>> if (!cl) { >>> cl = clregister(clt, inode, map); >>> >>> - if (unlikely(cl == ERR_PTR(-EAGAIN))) >>> + if (cl == ERR_PTR(-EAGAIN)) >>> goto repeat; >>> } >>> >>> @@ -607,15 +607,15 @@ static int z_erofs_do_read_page(struct z_erofs_decompress_frontend *fe, >>> map->m_la = offset + cur; >>> map->m_llen = 0; >>> err = z_erofs_map_blocks_iter(inode, map, 0); >>> - if (unlikely(err)) >>> + if (err) >>> goto err_out; >>> >>> restart_now: >>> - if (unlikely(!(map->m_flags & EROFS_MAP_MAPPED))) >>> + if (!(map->m_flags & EROFS_MAP_MAPPED)) >>> goto hitted; >>> >>> err = z_erofs_collector_begin(clt, inode, map); >>> - if (unlikely(err)) >>> + if (err) >>> goto err_out; >>> >>> /* preload all compressed pages (maybe downgrade role if necessary) */ >>> @@ -630,7 +630,7 @@ static int z_erofs_do_read_page(struct z_erofs_decompress_frontend *fe, >>> tight &= (clt->mode >= COLLECT_PRIMARY_HOOKED); >>> hitted: >>> cur = end - min_t(unsigned int, offset + end - map->m_la, end); >>> - if (unlikely(!(map->m_flags & EROFS_MAP_MAPPED))) { >>> + if (!(map->m_flags & EROFS_MAP_MAPPED)) { >>> zero_user_segment(page, cur, end); >>> goto next_part; >>> } >>> @@ -653,11 +653,11 @@ static int z_erofs_do_read_page(struct z_erofs_decompress_frontend *fe, >>> >>> err = z_erofs_attach_page(clt, newpage, >>> Z_EROFS_PAGE_TYPE_EXCLUSIVE); >>> - if (likely(!err)) >>> + if (!err) >>> goto retry; >>> } >>> >>> - if (unlikely(err)) >>> + if (err) >>> goto err_out; >>> >>> index = page->index - (map->m_la >> PAGE_SHIFT); >>> @@ -723,7 +723,7 @@ static inline void z_erofs_vle_read_endio(struct bio *bio) >>> DBG_BUGON(PageUptodate(page)); >>> DBG_BUGON(!page->mapping); >>> >>> - if (unlikely(!sbi && !z_erofs_page_is_staging(page))) { >>> + if (!sbi && !z_erofs_page_is_staging(page)) { >>> sbi = EROFS_SB(page->mapping->host->i_sb); >>> >>> if (time_to_inject(sbi, FAULT_READ_IO)) { >>> @@ -736,7 +736,7 @@ static inline void z_erofs_vle_read_endio(struct bio *bio) >>> if (sbi) >>> cachemngd = erofs_page_is_managed(sbi, page); >>> >>> - if (unlikely(err)) >>> + if (err) >>> SetPageError(page); >>> else if (cachemngd) >>> SetPageUptodate(page); >>> @@ -772,7 +772,7 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> mutex_lock(&cl->lock); >>> nr_pages = cl->nr_pages; >>> >>> - if (likely(nr_pages <= Z_EROFS_VMAP_ONSTACK_PAGES)) { >>> + if (nr_pages <= Z_EROFS_VMAP_ONSTACK_PAGES) { >>> pages = pages_onstack; >>> } else if (nr_pages <= Z_EROFS_VMAP_GLOBAL_PAGES && >>> mutex_trylock(&z_pagemap_global_lock)) { >>> @@ -787,7 +787,7 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> gfp_flags); >>> >>> /* fallback to global pagemap for the lowmem scenario */ >>> - if (unlikely(!pages)) { >>> + if (!pages) { >>> mutex_lock(&z_pagemap_global_lock); >>> pages = z_pagemap_global; >>> } >>> @@ -823,7 +823,7 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> * currently EROFS doesn't support multiref(dedup), >>> * so here erroring out one multiref page. >>> */ >>> - if (unlikely(pages[pagenr])) { >>> + if (pages[pagenr]) { >>> DBG_BUGON(1); >>> SetPageError(pages[pagenr]); >>> z_erofs_onlinepage_endio(pages[pagenr]); >>> @@ -847,7 +847,7 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> >>> if (!z_erofs_page_is_staging(page)) { >>> if (erofs_page_is_managed(sbi, page)) { >>> - if (unlikely(!PageUptodate(page))) >>> + if (!PageUptodate(page)) >>> err = -EIO; >>> continue; >>> } >>> @@ -859,7 +859,7 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> pagenr = z_erofs_onlinepage_index(page); >>> >>> DBG_BUGON(pagenr >= nr_pages); >>> - if (unlikely(pages[pagenr])) { >>> + if (pages[pagenr]) { >>> DBG_BUGON(1); >>> SetPageError(pages[pagenr]); >>> z_erofs_onlinepage_endio(pages[pagenr]); >>> @@ -871,13 +871,13 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> } >>> >>> /* PG_error needs checking for inplaced and staging pages */ >>> - if (unlikely(PageError(page))) { >>> + if (PageError(page)) { >>> DBG_BUGON(PageUptodate(page)); >>> err = -EIO; >>> } >>> } >>> >>> - if (unlikely(err)) >>> + if (err) >>> goto out; >>> >>> llen = pcl->length >> Z_EROFS_PCLUSTER_LENGTH_BIT; >>> @@ -926,7 +926,7 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> if (z_erofs_put_stagingpage(pagepool, page)) >>> continue; >>> >>> - if (unlikely(err < 0)) >>> + if (err < 0) >>> SetPageError(page); >>> >>> z_erofs_onlinepage_endio(page); >>> @@ -934,7 +934,7 @@ static int z_erofs_decompress_pcluster(struct super_block *sb, >>> >>> if (pages == z_pagemap_global) >>> mutex_unlock(&z_pagemap_global_lock); >>> - else if (unlikely(pages != pages_onstack)) >>> + else if (pages != pages_onstack) >>> kvfree(pages); >>> >>> cl->nr_pages = 0; >>> @@ -1212,7 +1212,7 @@ static bool z_erofs_vle_submit_all(struct super_block *sb, >>> bool force_submit = false; >>> unsigned int nr_bios; >>> >>> - if (unlikely(owned_head == Z_EROFS_PCLUSTER_TAIL)) >>> + if (owned_head == Z_EROFS_PCLUSTER_TAIL) >>> return false; >>> >>> force_submit = false; >>> diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c >>> index 4dc9cec01297..850e0e3d57a8 100644 >>> --- a/fs/erofs/zmap.c >>> +++ b/fs/erofs/zmap.c >>> @@ -348,7 +348,7 @@ static int vle_extent_lookback(struct z_erofs_maprecorder *m, >>> >>> switch (m->type) { >>> case Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD: >>> - if (unlikely(!m->delta[0])) { >>> + if (!m->delta[0]) { >>> errln("invalid lookback distance 0 at nid %llu", >>> vi->nid); >>> DBG_BUGON(1); >>> @@ -386,7 +386,7 @@ int z_erofs_map_blocks_iter(struct inode *inode, >>> trace_z_erofs_map_blocks_iter_enter(inode, map, flags); >>> >>> /* when trying to read beyond EOF, leave it unmapped */ >>> - if (unlikely(map->m_la >= inode->i_size)) { >>> + if (map->m_la >= inode->i_size) { >>> map->m_llen = map->m_la + 1 - inode->i_size; >>> map->m_la = inode->i_size; >>> map->m_flags = 0; >>> @@ -420,7 +420,7 @@ int z_erofs_map_blocks_iter(struct inode *inode, >>> break; >>> } >>> /* m.lcn should be >= 1 if endoff < m.clusterofs */ >>> - if (unlikely(!m.lcn)) { >>> + if (!m.lcn) { >>> errln("invalid logical cluster 0 at nid %llu", >>> vi->nid); >>> err = -EFSCORRUPTED; >>> @@ -433,7 +433,7 @@ int z_erofs_map_blocks_iter(struct inode *inode, >>> case Z_EROFS_VLE_CLUSTER_TYPE_NONHEAD: >>> /* get the correspoinding first chunk */ >>> err = vle_extent_lookback(&m, m.delta[0]); >>> - if (unlikely(err)) >>> + if (err) >>> goto unmap_out; >>> break; >>> default: >>> diff --git a/fs/erofs/zpvec.h b/fs/erofs/zpvec.h >>> index bd3cee16491c..58556903aa94 100644 >>> --- a/fs/erofs/zpvec.h >>> +++ b/fs/erofs/zpvec.h >>> @@ -111,11 +111,11 @@ static inline bool z_erofs_pagevec_enqueue(struct z_erofs_pagevec_ctor *ctor, >>> bool *occupied) >>> { >>> *occupied = false; >>> - if (unlikely(!ctor->next && type)) >>> + if (!ctor->next && type) >>> if (ctor->index + 1 == ctor->nr) >>> return false; >>> >>> - if (unlikely(ctor->index >= ctor->nr)) >>> + if (ctor->index >= ctor->nr) >>> z_erofs_pagevec_ctor_pagedown(ctor, false); >>> >>> /* exclusive page type must be 0 */ >>> @@ -137,7 +137,7 @@ z_erofs_pagevec_dequeue(struct z_erofs_pagevec_ctor *ctor, >>> { >>> erofs_vtptr_t t; >>> >>> - if (unlikely(ctor->index >= ctor->nr)) { >>> + if (ctor->index >= ctor->nr) { >>> DBG_BUGON(!ctor->next); >>> z_erofs_pagevec_ctor_pagedown(ctor, true); >>> } >>> > . >