diff options
author | Adin Scannell <ascannell@google.com> | 2021-10-18 11:07:11 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-10-18 11:09:39 -0700 |
commit | 4f6cda4d0ed8694a1b09d27a039eb4e57432bc75 (patch) | |
tree | 33fce0369425e33bce8a4fd2664b69cc04d8e3ce /pkg/tcpip/stack/conntrack.go | |
parent | ae8f93e555cdce4b8d423342011b1043f1b470a6 (diff) |
Support distinction for RWMutex and read-only locks.
Fixes #6590
PiperOrigin-RevId: 404007524
Diffstat (limited to 'pkg/tcpip/stack/conntrack.go')
-rw-r--r-- | pkg/tcpip/stack/conntrack.go | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/pkg/tcpip/stack/conntrack.go b/pkg/tcpip/stack/conntrack.go index 046679f76..eee0fc20c 100644 --- a/pkg/tcpip/stack/conntrack.go +++ b/pkg/tcpip/stack/conntrack.go @@ -146,7 +146,6 @@ func (cn *conn) timedOut(now time.Time) bool { // update the connection tracking state. // -// TODO(https://gvisor.dev/issue/6590): annotate r/w locking requirements. // +checklocks:cn.mu func (cn *conn) updateLocked(pkt *PacketBuffer, reply bool) { if pkt.TransportProtocolNumber != header.TCPProtocolNumber { @@ -304,7 +303,7 @@ func (bkt *bucket) connForTID(tid tupleID, now time.Time) *tuple { return bkt.connForTIDRLocked(tid, now) } -// +checklocks:bkt.mu +// +checklocksread:bkt.mu func (bkt *bucket) connForTIDRLocked(tid tupleID, now time.Time) *tuple { for other := bkt.tuples.Front(); other != nil; other = other.Next() { if tid == other.id() && !other.conn.timedOut(now) { @@ -591,8 +590,7 @@ func (ct *ConnTrack) reapUnused(start int, prevInterval time.Duration) (int, tim // returns whether the tuple's connection has timed out. // // Precondition: ct.mu is read locked and bkt.mu is write locked. -// TODO(https://gvisor.dev/issue/6590): annotate r/w locking requirements. -// +checklocks:ct.mu +// +checklocksread:ct.mu // +checklocks:bkt.mu func (ct *ConnTrack) reapTupleLocked(tuple *tuple, bktID int, bkt *bucket, now time.Time) bool { if !tuple.conn.timedOut(now) { @@ -621,7 +619,6 @@ func (ct *ConnTrack) reapTupleLocked(tuple *tuple, bktID int, bkt *bucket, now t return true } -// TODO(https://gvisor.dev/issue/6590): annotate r/w locking requirements. // +checklocks:b.mu func removeConnFromBucket(b *bucket, tuple *tuple) { if tuple.reply { |