Hello Sascha, On 6/15/20 8:02 AM, Sascha Hauer wrote: > So far we freed the no longer needed inodes only at unmount time. > Let's trust our reference counting a bit more and free them once > the reference counter hits zero. > > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > --- > fs/fs.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/fs/fs.c b/fs/fs.c > index cecb3d70e0..e04cadfe5d 100644 > --- a/fs/fs.c > +++ b/fs/fs.c > @@ -1090,10 +1090,12 @@ void iput(struct inode *inode) > if (!inode) > return; > > - if (!inode->i_count) > - return; > - > inode->i_count--; > + > + if (!inode->i_count) { > + list_del(&inode->i_sb_list); There is no explicit initialization of i_sb_list anywhere, only list_add. Without reverting this patch, I can reproduce null pointer dereference booting from squashfs as i_sb_list remained uninitialized when this line is executed. Can you drop this patch for now? > + destroy_inode(inode); > + } > } > > struct inode *iget(struct inode *inode) > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox