Make unix_tot_inflight counter non-atomic
Subsystems (3)
PATCH 1/3 Make unix_tot_inflight counter non-atomic
This counter is _always_ modified under the unix_gc_lock spinlock, so its atomicity can be provided w/o additional efforts.
Signed-off-by Pavel Emelyanov <[email protected]>
---
include/net/af_unix.h +1 -1
@@ -12,7 +12,7 @@ extern void unix_gc(void);#define UNIX_HASH_SIZE 256 -extern atomic_t unix_tot_inflight; +extern unsigned int unix_tot_inflight;struct unix_address {atomic_t refcnt;
net/unix/af_unix.c +1 -1
@@ -457,7 +457,7 @@ static int unix_release_sock (struct sock *sk, int embrion)* What the above comment does talk about? --ANK(980817) */ -if (atomic_read (&unix_tot_inflight)) +if (unix_tot_inflight)unix_gc ();/* Garbage collect fds */ return 0 ;
net/unix/garbage.c +3 -3
@@ -92,7 +92,7 @@ static LIST_HEAD(gc_inflight_list);static LIST_HEAD (gc_candidates);static DEFINE_SPINLOCK (unix_gc_lock); -atomic_t unix_tot_inflight =ATOMIC_INIT (0 ); +unsigned int unix_tot_inflight;static struct sock *unix_get_socket (struct file *filp)
@@ -133,7 +133,7 @@ void unix_inflight(struct file *fp) }else {BUG_ON (list_empty (&u->link)); } -atomic_inc (&unix_tot_inflight); + unix_tot_inflight++;spin_unlock (&unix_gc_lock); } }
@@ -147,7 +147,7 @@ void unix_notinflight(struct file *fp)BUG_ON (list_empty (&u->link));if (atomic_dec_and_test (&u->inflight))list_del_init (&u->link); -atomic_dec (&unix_tot_inflight); + unix_tot_inflight--;spin_unlock (&unix_gc_lock); } }
Signature · 1 line
1.5.3.4
From: Pavel Emelyanov <[email protected]>
Date: Wed, 07 Nov 2007 16:52:36 +0300
Quoted 4 lines
This counter is _always_ modified under the
unix_gc_lockspinlock, so its atomicity can be provided w/o additional efforts.Signed-off-by Pavel Emelyanov <[email protected]>
Applied.