On Thu, Aug 15, 2019 at 04:54:21PM +0200, Jan Kara wrote:
quoted
+ /* and find the associated wb */
+ wb = wb_get_create(bdi, memcg_css, GFP_NOWAIT | __GFP_NOWARN);
+ if (!wb) {
+ ret = -ENOMEM;
+ goto out_css_put;
+ }
One more thought: You don't want the "_create" part here, do you? If
there's any point in writing back using this wb, it must be attached to
some inode and thus it must exist. In the normal case wb_get_create() will
just fetch the reference and be done with it but when you feed garbage into
this function due to id going stale or frn structures getting corrupted due
to concurrent access, you can be creating bogus wb structures in bdi...
Yeah, it can create wbs unnecessarily which isn't critical but also is
easy to fix. Will update.
Thanks.
--
tejun