Re: idr_get_new_exact ?
From: Roland Dreier <hidden>
Date: 2010-09-20 20:35:53
Also in:
dm-devel, linux-i2c, linux-raid, linux-rdma, lkml
From: Roland Dreier <hidden>
Date: 2010-09-20 20:35:53
Also in:
dm-devel, linux-i2c, linux-raid, linux-rdma, lkml
> Occasionally, drivers care about the value that idr associates with > their pointers. > > Today we have idr_get_new_above() which allocates a new idr entry > above or equal to a given starting id, but sometimes drivers need to > force an exact value. > > To overcome this small API gap, drivers are wrapping idr_get_new_above > and then either BUG_ON() or just call idr_remove() and returns -EBUSY > when idr allocates them an id which is different than their requested > value. Looks fine to me as an improvement over the status quo, but I wonder how many of these places could use the radix_tree stuff instead? If you're not using the ability of the idr code to assign an id for you, then it seems the radix_tree API is a better fit. - R.