forked from luck/tmp_suning_uos_patched
pull bumping refcount into ->kill()
there will be one more change of ->kill() calling conventions; this isn't final. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
9e251d0204
commit
32426f6653
12
fs/fs_pin.c
12
fs/fs_pin.c
|
@ -34,12 +34,6 @@ void mnt_pin_kill(struct mount *m)
|
|||
break;
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -56,12 +50,6 @@ void sb_pin_kill(struct super_block *sb)
|
|||
break;
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -189,6 +189,12 @@ static void acct_pin_kill(struct fs_pin *pin)
|
|||
{
|
||||
struct bsd_acct_struct *acct;
|
||||
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);
|
||||
if (!acct->ns) {
|
||||
mutex_unlock(&acct->lock);
|
||||
|
|
Loading…
Reference in New Issue
Block a user