lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bcecc8fe-8e98-fe2f-2a7c-2eac51cdbc9c@linux.alibaba.com>
Date:   Thu, 9 Mar 2023 16:09:53 +0800
From:   Gao Xiang <hsiangkao@...ux.alibaba.com>
To:     Yangtao Li <frank.li@...o.com>, zbestahu@...il.com
Cc:     chao@...nel.org, huyue2@...lpad.com, jefflexu@...ux.alibaba.com,
        linux-erofs@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
        xiang@...nel.org, zhangwen@...lpad.com
Subject: Re: erofs: use wrapper i_blocksize() in erofs_file_read_iter()



On 2023/3/9 15:42, Yangtao Li wrote:
>> FYI it seems that GENMASK macro is widely used in driver and arch code base, while it's rarely used in fs, except for f2fs.
> 
> I think the following usage can be changed to bitmap api, just like in f2fs?
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=c4ca1f7164734a1baf40d4ff1552172a07d4fc4d
> 
> fs/erofs/fscache.c:135:         unsigned long flags = 1 << NETFS_SREQ_ONDEMAND;
> fs/erofs/internal.h:250:#define SECTORS_PER_BLOCK       (1 << SECTORS_PER_BLOCK)
> fs/erofs/internal.h:252:#define EROFS_BLKSIZ            (1 << LOG_BLOCK_SIZE)
> fs/erofs/internal.h:354:        return (value >> bit) & ((1 << bits) - 1);
> fs/erofs/zmap.c:66:             ((1 << Z_EROFS_VLE_DI_CLUSTER_TYPE_BITS) - 1);
> fs/erofs/zmap.c:69:             m->clusterofs = 1 << vi->z_logical_clusterbits;
> fs/erofs/zmap.c:114:    const unsigned int lomask = (1 << lclusterbits) - 1;
> fs/erofs/zmap.c:141:    const unsigned int lomask = (1 << lclusterbits) - 1;
> fs/erofs/zmap.c:147:    if (1 << amortizedshift == 4)
> fs/erofs/zmap.c:149:    else if (1 << amortizedshift == 2 && lclusterbits == 12)
> fs/erofs/zmap.c:169:            m->clusterofs = 1 << lclusterbits;
> fs/erofs/zmap.c:291:    pos += lcn * (1 << amortizedshift);
> fs/erofs/zmap.c:409:            m->compressedblks = 1 << (lclusterbits - LOG_BLOCK_SIZE);
> fs/erofs/zmap.c:457:                              m->clusterofs != 1 << lclusterbits);
> fs/erofs/zmap.c:497:    endoff = ofs & ((1 << lclusterbits) - 1);
> fs/erofs/erofs_fs.h:120:        ((1 << (EROFS_I_DATALAYOUT_BIT + EROFS_I_DATALAYOUT_BITS)) - 1)
> fs/erofs/erofs_fs.h:279:#define Z_EROFS_ALL_COMPR_ALGS          ((1 << Z_EROFS_COMPRESSION_MAX) - 1)
> fs/erofs/erofs_fs.h:377:#define Z_EROFS_VLE_DI_PARTIAL_REF              (1 << 15)
> fs/erofs/erofs_fs.h:384:#define Z_EROFS_VLE_DI_D0_CBLKCNT               (1 << 11)
> fs/erofs/erofs_fs.h:427:                .h_clusterbits = 1 << Z_EROFS_FRAGMENT_INODE_BIT
> fs/erofs/data.c:379:                    blksize_mask = (1 << inode->i_blkbits) - 1;
> fs/erofs/zdata.c:133:#define Z_EROFS_PAGE_EIO                   (1 << 30)
> 

Is there some benefit to use these? BIT(1) vs 1 << 1? also almost all
filesystems rarely use such APIs honestly.

Thanks,
Gao Xiang

> Thx,
> Yangtao

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ