Commit 32426f66 authored by Al Viro's avatar Al Viro

pull bumping refcount into ->kill()

there will be one more change of ->kill() calling conventions; this
isn't final.
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 9e251d02
...@@ -34,12 +34,6 @@ void mnt_pin_kill(struct mount *m) ...@@ -34,12 +34,6 @@ void mnt_pin_kill(struct mount *m)
break; break;
} }
pin = hlist_entry(p, struct fs_pin, m_list); pin = hlist_entry(p, struct fs_pin, m_list);
if (!atomic_long_inc_not_zero(&pin->count)) {
rcu_read_unlock();
cpu_relax();
continue;
}
rcu_read_unlock();
pin->kill(pin); pin->kill(pin);
} }
} }
...@@ -56,12 +50,6 @@ void sb_pin_kill(struct super_block *sb) ...@@ -56,12 +50,6 @@ void sb_pin_kill(struct super_block *sb)
break; break;
} }
pin = hlist_entry(p, struct fs_pin, s_list); pin = hlist_entry(p, struct fs_pin, s_list);
if (!atomic_long_inc_not_zero(&pin->count)) {
rcu_read_unlock();
cpu_relax();
continue;
}
rcu_read_unlock();
pin->kill(pin); pin->kill(pin);
} }
} }
...@@ -189,6 +189,12 @@ static void acct_pin_kill(struct fs_pin *pin) ...@@ -189,6 +189,12 @@ static void acct_pin_kill(struct fs_pin *pin)
{ {
struct bsd_acct_struct *acct; struct bsd_acct_struct *acct;
acct = container_of(pin, struct bsd_acct_struct, pin); acct = container_of(pin, struct bsd_acct_struct, pin);
if (!atomic_long_inc_not_zero(&pin->count)) {
rcu_read_unlock();
cpu_relax();
return;
}
rcu_read_unlock();
mutex_lock(&acct->lock); mutex_lock(&acct->lock);
if (!acct->ns) { if (!acct->ns) {
mutex_unlock(&acct->lock); mutex_unlock(&acct->lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment