On Tue, Nov 16, 2021 at 1:09 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Mon, 1 Nov 2021 17:35:14 +0800 Muchun Song <songmuchun@xxxxxxxxxxxxx> wrote: > > > I found a bug [1] some days ago, which is because we want to use > > inode->i_private to pass user private data. However, this is wrong > > on proc fs. We provide a specific function PDE_DATA() to get user > > private data. Actually, we can hide this detail by storing > > PDE()->data into inode->i_private and removing PDE_DATA() completely. > > The user could use inode->i_private to get user private data just > > like debugfs does. This series is trying to remove PDE_DATA(). > > Why can't we do > > /* > * comment goes here > */ > static inline void *PDE_DATA(struct inode *inode) > { > return inode->i_private; > } > > to abstract things a bit and to reduce the patch size? > > otoh, that upper-case thing needs to go, so the patch size remains the > same anyway. > > And perhaps we should have a short-term > > #define PDE_DATA(i) pde_data(i) Right. This way is the easiest way to reduce the patch size. Actually, I want to make all PDE_DATA() go away, which makes this patch series go big. > > because new instances are sure to turn up during the development cycle. > > But I can handle that by staging the patch series after linux-next and > reminding myself to grep for new PDE_DATA instances prior to > upstreaming. I'd be happy if you could replace PDE_DATA() with inode->i_private. In this case, should I still introduce pde_data() and perform the above things to make this series smaller? Thanks.