Commit ec4a3407 authored by Lars Ellenberg's avatar Lars Ellenberg Committed by Jens Axboe

drbd: use list_first_entry_or_null in first_peer_device/first_connection

If there are no peer_devices or connections, I'd rather have NULL
than some "arbitrary" address pretending to point to a struct.

Helps to avoid hard to debug symptoms, in case we ever try to use
and dereference a drbd_connection or drbd_peer_device
where we in fact don't have any connection at all.
Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent babea49e
...@@ -853,7 +853,7 @@ static inline struct drbd_device *minor_to_device(unsigned int minor) ...@@ -853,7 +853,7 @@ static inline struct drbd_device *minor_to_device(unsigned int minor)
static inline struct drbd_peer_device *first_peer_device(struct drbd_device *device) static inline struct drbd_peer_device *first_peer_device(struct drbd_device *device)
{ {
return list_first_entry(&device->peer_devices, struct drbd_peer_device, peer_devices); return list_first_entry_or_null(&device->peer_devices, struct drbd_peer_device, peer_devices);
} }
#define for_each_resource(resource, _resources) \ #define for_each_resource(resource, _resources) \
...@@ -2222,7 +2222,7 @@ static inline void drbd_md_flush(struct drbd_device *device) ...@@ -2222,7 +2222,7 @@ static inline void drbd_md_flush(struct drbd_device *device)
static inline struct drbd_connection *first_connection(struct drbd_resource *resource) static inline struct drbd_connection *first_connection(struct drbd_resource *resource)
{ {
return list_first_entry(&resource->connections, return list_first_entry_or_null(&resource->connections,
struct drbd_connection, connections); struct drbd_connection, connections);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment