Re: [PATCH v4] sysfs: fix kobject refcount to address races with kobject removal

From: Luis Chamberlain
Date: Thu Jul 01 2021 - 18:48:26 EST


On Fri, Jun 25, 2021 at 02:56:03PM -0700, Luis Chamberlain wrote:
> On Thu, Jun 24, 2021 at 01:09:03PM +0200, Greg KH wrote:
> > thanks for making this change and sticking with it!
> >
> > Oh, and with this change, does your modprobe/rmmod crazy test now work?
>
> It does but I wrote a test_syfs driver and I believe I see an issue with
> this. I'll debug a bit more and see what it was, and I'll then also use
> the driver to demo the issue more clearly, and then verification can be
> an easy selftest test.

OK my conclusion based on a new selftest driver I wrote is we can drop
this patch safely. The selftest will cover this corner case well now.

In short: the kernfs active reference will ensure the store operation
still exists. The kernfs mutex is not enough, but if the driver removes
the operation prior to getting the active reference, the write will just
fail. The deferencing inside of the sysfs operation is abstract to
kernfs, and while kernfs can't do anything to prevent a driver from
doing something stupid, it at least can ensure an open file ensure the
op is not removed until the operation completes.

Luis