Messages in this thread | | | Date | Fri, 23 May 2003 08:25:08 +0200 | From | Jens Axboe <> | Subject | Re: kernel BUG at include/linux/dcache.h:271! |
| |
On Thu, May 22 2003, Andrew Morton wrote: > Maneesh Soni <maneesh@in.ibm.com> wrote: > > > > The problem is that we have multiple ramdisks but all have > > common request queue and common elevator. In terms of sysfs we > > have multiple kobjects for multiple ramdisks, but one single kobject for the > > ramdisks' common elevator. > > > > While initializing, different kobjects are allocated for the ramdisks but, > > the common elevator uses the same kobject. In other words, every init > > of a ramdisk, the common elevator.kobj->parent will be different and it will > > allocate a new dentry, overwrite the elevator.kobj->dentry > > and loose the earlier allocated dentries. (see: elv_register_queue()) > > > > While exiting, it ends up in removing the same dentry (allocated at the last) > > again and BUGs in dget on dentry with zero ref count. > > > > Not sure where it should be fixed > > ramdisk > > - should have separate queues on for each ramdisk > > > > elevator > > - should not re-register already registered queue in elv_register_queue > > > > sysfs > > - should handle kobject with multiple parent kobjects > > I can't think of anywhere else where we are likely to want to support > multiple devices from a single queue in this manner, so perhaps the best > solution is to remove the exceptional case: allocate a separate queue for > each ramdisk instance. > > Jens, do you agree?
Completely and utterly agree :)
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |