if (hlimit < 0)
hlimit = ip6_dst_hoplimit(dst);
+ lock_sock(sk);
err = ip6_append_data(sk, ping_getfrag, &pfh, len,
0, hlimit,
np->tclass, NULL, &fl6, rt,
(struct icmp6hdr *) &pfh.icmph,
len);
}
+ release_sock(sk);
- return err;
+ if (err)
+ return err;
+
+ return len;
}
#ifdef CONFIG_PROC_FS