Re: [f2fs-dev] [PATCH v1 3/5] treewide: use get_random_u32() when possible
"Jason A. Donenfeld" <[email protected]>
| Newsgroups | org.kernel.vger.dccp,dev.linux.lists.drbd-dev,net.sourceforge.lists.linux-f2fs-devel,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-mtd,org.infradead.lists.linux-nvme,org.kernel.vger.ceph-devel,org.kernel.vger.dmaengine,org.kernel.vger.linux-block,org.kernel.vger.linux-crypto,org.kernel.vger.linux-doc,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fbdev,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-hams,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-mmc,org.kernel.vger.linux-nfs,org.kernel.vger.linux-raid,org.kernel.vger.linux-rdma,org.kernel.vger.linux-scsi,org.kernel.vger.linux-sctp,org.kernel.vger.linux-usb,org.kernel.vger.linux-wireless,org.kernel.vger.linux-xfs,org.kernel.vger.lvs-devel,org.kernel.vger.netdev,org.kernel.vger.netfilter-devel,org.kernel.vger.target-devel,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <CAHmME9r2u86Ga1UL_yD6x44OX84UJbRQyfhhDjF1daXyaYsbEw@mail.gmail.com> |
On Thu, Oct 6, 2022 at 7:01 AM Andy Shevchenko <[email protected]> wrote: > > On Thu, Oct 06, 2022 at 06:33:15AM -0600, Jason A. Donenfeld wrote: > > On Thu, Oct 06, 2022 at 10:43:31AM +0200, Jan Kara wrote: > > ... > > > > The code here is effectively doing the > > > > > > parent_group = prandom_u32_max(ngroups); > > > > > > Similarly here we can use prandom_u32_max(ngroups) like: > > > > > > if (qstr) { > > > ... > > > parent_group = hinfo.hash % ngroups; > > > } else > > > parent_group = prandom_u32_max(ngroups); > > > > Nice catch. I'll move these to patch #1. > > I believe coccinelle is able to handle this kind of code as well I'd be extremely surprised. The details were kind of non obvious. I just spent a decent amount of time manually checking those blocks, to make sure we didn't wind up with different behavior, given the variable reuse. Jason