[PATCH 4/4] fs: free unused dentries
Ahmad Fatoum
a.fatoum at pengutronix.de
Tue Sep 15 09:28:10 EDT 2020
Hello,
On 9/15/20 3:12 PM, Sascha Hauer wrote:
> 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.
Just tried on the build server; could you try to run nv autoboot=abort; reset instead?
>
> 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