[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230406175259.37978-1-frank.li@vivo.com>
Date: Fri, 7 Apr 2023 01:52:59 +0800
From: Yangtao Li <frank.li@...o.com>
To: gregkh@...uxfoundation.org
Cc: chao@...nel.org, damien.lemoal@...nsource.wdc.com,
frank.li@...o.com, huyue2@...lpad.com, jefflexu@...ux.alibaba.com,
jth@...nel.org, linux-erofs@...ts.ozlabs.org,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
naohiro.aota@....com, rafael@...nel.org, xiang@...nel.org
Subject: Re: [PATCH 2/3] erofs: convert to use kobject_is_added()
Hi Greg,
> That isn't going to work, and as proof of that, the release callback
> should be a simple call to kfree(), NOT as a completion notification
> which then something else will go off and free the memory here. That
> implies that there are multiple reference counting structures happening
> on the same structure, which is not ok.
The release() function did nothing inside, but we need to wait asynchronously...
Can we directly export the kobject_cleanup(kobj) interface so that
kobj_type->release() doesn't have to do anything?
If do it, the use of init_completion, wait_for_completion, etc. will no longer be needed.
> OR we pull it out of the structure and just let it hang off as a separate
> structure (i.e. a pointer to something else.)
Make something like sbi->s_kobj a pointer instead of data embedded in sbi?
When kobject_init_and_add fails, call kobject_put(sbi->s_kobj), and assign
sbi->s_kobj = NULL at the same time?
Thx,
Yangtao
Powered by blists - more mailing lists