diff options
Diffstat (limited to 'net/rds/recv.c')
-rw-r--r-- | net/rds/recv.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/net/rds/recv.c b/net/rds/recv.c index 1402c21210b1..03cd8df54c26 100644 --- a/net/rds/recv.c +++ b/net/rds/recv.c | |||
@@ -792,3 +792,28 @@ void rds_inc_info_copy(struct rds_incoming *inc, | |||
792 | 792 | ||
793 | rds_info_copy(iter, &minfo, sizeof(minfo)); | 793 | rds_info_copy(iter, &minfo, sizeof(minfo)); |
794 | } | 794 | } |
795 | |||
796 | void rds6_inc_info_copy(struct rds_incoming *inc, | ||
797 | struct rds_info_iterator *iter, | ||
798 | struct in6_addr *saddr, struct in6_addr *daddr, | ||
799 | int flip) | ||
800 | { | ||
801 | struct rds6_info_message minfo6; | ||
802 | |||
803 | minfo6.seq = be64_to_cpu(inc->i_hdr.h_sequence); | ||
804 | minfo6.len = be32_to_cpu(inc->i_hdr.h_len); | ||
805 | |||
806 | if (flip) { | ||
807 | minfo6.laddr = *daddr; | ||
808 | minfo6.faddr = *saddr; | ||
809 | minfo6.lport = inc->i_hdr.h_dport; | ||
810 | minfo6.fport = inc->i_hdr.h_sport; | ||
811 | } else { | ||
812 | minfo6.laddr = *saddr; | ||
813 | minfo6.faddr = *daddr; | ||
814 | minfo6.lport = inc->i_hdr.h_sport; | ||
815 | minfo6.fport = inc->i_hdr.h_dport; | ||
816 | } | ||
817 | |||
818 | rds_info_copy(iter, &minfo6, sizeof(minfo6)); | ||
819 | } | ||