|
|
|
@ -2658,7 +2658,6 @@ int nla_put_status_info(struct sk_buff *skb, struct drbd_conf *mdev, |
|
|
|
|
const struct sib_info *sib) |
|
|
|
|
{ |
|
|
|
|
struct state_info *si = NULL; /* for sizeof(si->member); */ |
|
|
|
|
struct net_conf *nc; |
|
|
|
|
struct nlattr *nla; |
|
|
|
|
int got_ldev; |
|
|
|
|
int err = 0; |
|
|
|
@ -2688,13 +2687,19 @@ int nla_put_status_info(struct sk_buff *skb, struct drbd_conf *mdev, |
|
|
|
|
goto nla_put_failure; |
|
|
|
|
|
|
|
|
|
rcu_read_lock(); |
|
|
|
|
if (got_ldev) |
|
|
|
|
if (disk_conf_to_skb(skb, rcu_dereference(mdev->ldev->disk_conf), exclude_sensitive)) |
|
|
|
|
goto nla_put_failure; |
|
|
|
|
if (got_ldev) { |
|
|
|
|
struct disk_conf *disk_conf; |
|
|
|
|
|
|
|
|
|
nc = rcu_dereference(mdev->tconn->net_conf); |
|
|
|
|
if (nc) |
|
|
|
|
err = net_conf_to_skb(skb, nc, exclude_sensitive); |
|
|
|
|
disk_conf = rcu_dereference(mdev->ldev->disk_conf); |
|
|
|
|
err = disk_conf_to_skb(skb, disk_conf, exclude_sensitive); |
|
|
|
|
} |
|
|
|
|
if (!err) { |
|
|
|
|
struct net_conf *nc; |
|
|
|
|
|
|
|
|
|
nc = rcu_dereference(mdev->tconn->net_conf); |
|
|
|
|
if (nc) |
|
|
|
|
err = net_conf_to_skb(skb, nc, exclude_sensitive); |
|
|
|
|
} |
|
|
|
|
rcu_read_unlock(); |
|
|
|
|
if (err) |
|
|
|
|
goto nla_put_failure; |
|
|
|
|