• T
    idr: remove _idr_rc_to_errno() hack · 12d1b439
    Tejun Heo 提交于
    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: NTejun Heo <tj@kernel.org>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    12d1b439
idr.h 5.7 KB