From 0e2a2de8f12b472e4e484cc39b2a2ca284938040 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Fri, 8 Mar 2013 16:07:27 +0100 Subject: [PATCH] --- yaml --- r: 363239 b: refs/heads/master c: 3db3c62584fbafee52a068035cc4c57e7b921acf h: refs/heads/master i: 363237: 45b12b518bc308e018ac08ac76ab0149c0b52c02 363235: a97f3bb0df58a87f8ae7130e1584e80ec239bb0c 363231: 818bae2780a6a3d12a4b434f1637ef807d84f294 v: v3 --- [refs] | 2 +- trunk/fs/sysfs/dir.c | 17 ++--------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/[refs] b/[refs] index 47d27266cee8..cd911d8672c7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 91721197def2fc69abf152c47dbb87eed0f13333 +refs/heads/master: 3db3c62584fbafee52a068035cc4c57e7b921acf diff --git a/trunk/fs/sysfs/dir.c b/trunk/fs/sysfs/dir.c index 2fbdff6be25c..7f968ede20d6 100644 --- a/trunk/fs/sysfs/dir.c +++ b/trunk/fs/sysfs/dir.c @@ -165,21 +165,8 @@ struct sysfs_dirent *sysfs_get_active(struct sysfs_dirent *sd) if (unlikely(!sd)) return NULL; - while (1) { - int v, t; - - v = atomic_read(&sd->s_active); - if (unlikely(v < 0)) - return NULL; - - t = atomic_cmpxchg(&sd->s_active, v, v + 1); - if (likely(t == v)) - break; - if (t < 0) - return NULL; - - cpu_relax(); - } + if (!atomic_inc_unless_negative(&sd->s_active)) + return NULL; if (likely(!ignore_lockdep(sd))) rwsem_acquire_read(&sd->dep_map, 0, 1, _RET_IP_);