On 6/4/18 6:56 PM, Kent Overstreet wrote: > On Mon, Jun 04, 2018 at 05:42:04PM -0700, Linus Torvalds wrote: >> On Mon, Jun 4, 2018 at 12:04 PM Kent Overstreet >> <kent.overstreet@xxxxxxxxx> wrote: >>> >>> However, that's not correct as is because mddev_delayed_put() calls >>> kobject_put(), and the kobject isn't initialized when the mddev is first >>> allocated, it's initialized when the gendisk is allocated... that isn't hard to >>> fix but that's getting into real refactoring that I'll need to put actual work >>> into testing. >> >> Well, it also removes the bioset_exit() calls entirely. > > Yeah, I realized that when I went back to finish that patch >> >> How about just the attached? >> >> It simply does it as two different cases, and adds the bioset_exit() >> calls to mddev_delayed_delete(). > > Oh right, just taking advantage of the fact that just the queue_work() needs to > be under the spinlock, not the actual free in the other case. > > I like your patch for a less invasive version, but I did finish and test my > version, which deletes more code :) > > I've already gone to the trouble of coming up with a VM smoketest, so I can test > yours too... I don't really have a strong opinion on which patch should go in. Kent, care to submit a proper version? We should get this in. -- Jens Axboe