aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@linbit.com>2011-08-08 17:36:56 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2014-02-17 10:27:47 -0500
commit05f7a7d6a7d23a877063857cf2df1dffec5a96dc (patch)
tree680e8b69e8ca9c6e8e793b226eb5392241bbec8d
parent8e2294343017d6b9a3026538e58ffe0d8bda3843 (diff)
idr: Add new function idr_is_empty()
Signed-off-by: Andreas Gruenbacher <agruen@linbit.com> Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
-rw-r--r--include/linux/idr.h1
-rw-r--r--lib/idr.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/idr.h b/include/linux/idr.h
index 871a213a8477..9c95d210458b 100644
--- a/include/linux/idr.h
+++ b/include/linux/idr.h
@@ -85,6 +85,7 @@ void idr_remove(struct idr *idp, int id);
85void idr_free(struct idr *idp, int id); 85void idr_free(struct idr *idp, int id);
86void idr_destroy(struct idr *idp); 86void idr_destroy(struct idr *idp);
87void idr_init(struct idr *idp); 87void idr_init(struct idr *idp);
88bool idr_is_empty(struct idr *idp);
88 89
89/** 90/**
90 * idr_preload_end - end preload section started with idr_preload() 91 * idr_preload_end - end preload section started with idr_preload()
diff --git a/lib/idr.c b/lib/idr.c
index bfe4db4e165f..1ba4956bfbff 100644
--- a/lib/idr.c
+++ b/lib/idr.c
@@ -869,6 +869,16 @@ void idr_init(struct idr *idp)
869} 869}
870EXPORT_SYMBOL(idr_init); 870EXPORT_SYMBOL(idr_init);
871 871
872static int idr_has_entry(int id, void *p, void *data)
873{
874 return 1;
875}
876
877bool idr_is_empty(struct idr *idp)
878{
879 return !idr_for_each(idp, idr_has_entry, NULL);
880}
881EXPORT_SYMBOL(idr_is_empty);
872 882
873/** 883/**
874 * DOC: IDA description 884 * DOC: IDA description