[AF_UNIX]: 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 <xemul@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8032b46489
commit
9305cfa444
3 changed files with 5 additions and 5 deletions
|
@ -12,7 +12,7 @@ extern void unix_gc(void);
|
||||||
|
|
||||||
#define UNIX_HASH_SIZE 256
|
#define UNIX_HASH_SIZE 256
|
||||||
|
|
||||||
extern atomic_t unix_tot_inflight;
|
extern unsigned int unix_tot_inflight;
|
||||||
|
|
||||||
struct unix_address {
|
struct unix_address {
|
||||||
atomic_t refcnt;
|
atomic_t refcnt;
|
||||||
|
|
|
@ -457,7 +457,7 @@ static int unix_release_sock (struct sock *sk, int embrion)
|
||||||
* What the above comment does talk about? --ANK(980817)
|
* What the above comment does talk about? --ANK(980817)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (atomic_read(&unix_tot_inflight))
|
if (unix_tot_inflight)
|
||||||
unix_gc(); /* Garbage collect fds */
|
unix_gc(); /* Garbage collect fds */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -92,7 +92,7 @@ static LIST_HEAD(gc_inflight_list);
|
||||||
static LIST_HEAD(gc_candidates);
|
static LIST_HEAD(gc_candidates);
|
||||||
static DEFINE_SPINLOCK(unix_gc_lock);
|
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)
|
static struct sock *unix_get_socket(struct file *filp)
|
||||||
|
@ -133,7 +133,7 @@ void unix_inflight(struct file *fp)
|
||||||
} else {
|
} else {
|
||||||
BUG_ON(list_empty(&u->link));
|
BUG_ON(list_empty(&u->link));
|
||||||
}
|
}
|
||||||
atomic_inc(&unix_tot_inflight);
|
unix_tot_inflight++;
|
||||||
spin_unlock(&unix_gc_lock);
|
spin_unlock(&unix_gc_lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ void unix_notinflight(struct file *fp)
|
||||||
BUG_ON(list_empty(&u->link));
|
BUG_ON(list_empty(&u->link));
|
||||||
if (atomic_dec_and_test(&u->inflight))
|
if (atomic_dec_and_test(&u->inflight))
|
||||||
list_del_init(&u->link);
|
list_del_init(&u->link);
|
||||||
atomic_dec(&unix_tot_inflight);
|
unix_tot_inflight--;
|
||||||
spin_unlock(&unix_gc_lock);
|
spin_unlock(&unix_gc_lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue