[PATCH 4/4] fs: free unused dentries

Sascha Hauer s.hauer at pengutronix.de
Tue Sep 15 09:12:19 EDT 2020


On Tue, Sep 15, 2020 at 10:01:23AM +0200, Ahmad Fatoum wrote:
> Hello Sascha,
> 
> On 9/15/20 9:12 AM, Sascha Hauer wrote:
> > On Tue, Sep 15, 2020 at 07:25:15AM +0200, Ahmad Fatoum wrote:
> >> Hello Sascha,
> >>
> >> On 9/14/20 3:06 PM, Sascha Hauer wrote:
> >>> So far we only ever freed dentries when the filesystem they are on is
> >>> unmounted. With this patch we actually trust reference counting and free
> >>> the dentries once the reference count hits zero.
> >>
> >> Unless I revert this patch, I run into a crash doing:
> >>
> >> dd if=/dev/zero of=barebox.env count=1
> >> ./barebox --image=barebox.env
> >> barebox at barebox sandbox:/ saveenv
> >> saving environment
> > 
> > "saveenv" answers with: "saveenv: No such file or directory". Did you
> > mean to do a "saveenv /dev/fd0"?
> > 
> >> barebox at barebox sandbox:/ reset
> >> =================================================================
> >> ==894761==ERROR: AddressSanitizer: heap-use-after-free on address 0x60e000005d70 at pc 0x5617cfde210a bp 0x7ffff89957d0 sp 0x7ffff89957c8
> > 
> > I can't reproduce this here unfortunately.
> 
> Sorry, should've been ./barebox --env=barebox.env
> 
> I can reproduce it with upstream/next (91a23b64445b8861acbfd96fcc03082b343b0211)
> and sandbox_defconfig (+CONFIG_RESET). saveenv; reset results in a segmentation fault.
> CONFIG_KASAN=y
> CONFIG_MALLOC_LIBC=y
> gives the better debugging output.

Hm, still can't reproduce, neither with
91a23b64445b8861acbfd96fcc03082b343b0211 nor with current next.

Sascha


-- 
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 |



More information about the barebox mailing list