]> git.karo-electronics.de Git - karo-tx-linux.git/commit
idr: remove _idr_rc_to_errno() hack
authorTejun Heo <tj@kernel.org>
Thu, 7 Feb 2013 01:31:33 +0000 (12:31 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 18 Feb 2013 05:47:27 +0000 (16:47 +1100)
commit007898d51c3ff1579cecc4e8192b6ac77d1b14d1
tree22a03df11fe557ee646627fa3f6425807dd66c07
parent3c123262124d17ee7a5562ce26b63a1d7fbb828c
idr: remove _idr_rc_to_errno() hack

idr uses -1, IDR_NEED_TO_GROW and IDR_NOMORE_SPACE to communicate
exception conditions internally.  The return value is later translated
to errno values using _idr_rc_to_errno().

This is confusing.  Drop the custom ones and consistently use -EAGAIN
for "tree needs to grow", -ENOMEM for "need more memory" and -ENOSPC
for "ran out of ID space".

Due to the weird memory preloading mechanism, [ra]_get_new*() return
-EAGAIN on memory shortage, so we need to substitute -ENOMEM w/
-EAGAIN on those interface functions.  They'll eventually be cleaned
up and the translations will go away.

This patch doesn't introduce any functional changes.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/idr.h
lib/idr.c