|
|
@@ -125,9 +125,21 @@ static inline void ceph_oid_copy(struct ceph_object_id *dest,
|
|
|
dest->name_len = src->name_len;
|
|
|
}
|
|
|
|
|
|
+static inline int ceph_osd_exists(struct ceph_osdmap *map, int osd)
|
|
|
+{
|
|
|
+ return osd >= 0 && osd < map->max_osd &&
|
|
|
+ (map->osd_state[osd] & CEPH_OSD_EXISTS);
|
|
|
+}
|
|
|
+
|
|
|
static inline int ceph_osd_is_up(struct ceph_osdmap *map, int osd)
|
|
|
{
|
|
|
- return (osd < map->max_osd) && (map->osd_state[osd] & CEPH_OSD_UP);
|
|
|
+ return ceph_osd_exists(map, osd) &&
|
|
|
+ (map->osd_state[osd] & CEPH_OSD_UP);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int ceph_osd_is_down(struct ceph_osdmap *map, int osd)
|
|
|
+{
|
|
|
+ return !ceph_osd_is_up(map, osd);
|
|
|
}
|
|
|
|
|
|
static inline bool ceph_osdmap_flag(struct ceph_osdmap *map, int flag)
|