kfree(lo);
}
-static int find_unbound_cb(int id, void *ptr, void *data)
-{
- struct loop_device *lo = ptr;
- int *ret = data;
-
- if (lo->lo_state != Lo_unbound)
- return 0;
- *ret = lo->lo_number;
- return 1;
-}
-
static int loop_find_unbound(void)
{
- int ret = -ENODEV;
+ struct loop_device *lo;
+ int id;
- idr_for_each(&loop_index_idr, &find_unbound_cb, &ret);
- return ret;
+ idr_for_each_entry(&loop_index_idr, lo, id) {
+ if (lo->lo_state == Lo_unbound)
+ return lo->lo_number;
+ }
+
+ return -ENODEV;
}
static void loop_probe(dev_t dev)