Loading fs/fs_pin.c +0 −11 Original line number Diff line number Diff line Loading @@ -4,19 +4,8 @@ #include "internal.h" #include "mount.h" static void pin_free_rcu(struct rcu_head *head) { kfree(container_of(head, struct fs_pin, rcu)); } static DEFINE_SPINLOCK(pin_lock); void pin_put(struct fs_pin *p) { if (atomic_long_dec_and_test(&p->count)) call_rcu(&p->rcu, pin_free_rcu); } void pin_remove(struct fs_pin *pin) { spin_lock(&pin_lock); Loading include/linux/fs_pin.h +0 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,5 @@ struct fs_pin { void (*kill)(struct fs_pin *); }; void pin_put(struct fs_pin *); void pin_remove(struct fs_pin *); void pin_insert(struct fs_pin *, struct vfsmount *); kernel/acct.c +10 −4 Original line number Diff line number Diff line Loading @@ -124,6 +124,12 @@ static int check_free_space(struct bsd_acct_struct *acct) return acct->active; } static void acct_put(struct bsd_acct_struct *p) { if (atomic_long_dec_and_test(&p->pin.count)) kfree_rcu(p, pin.rcu); } static struct bsd_acct_struct *acct_get(struct pid_namespace *ns) { struct bsd_acct_struct *res; Loading @@ -144,7 +150,7 @@ static struct bsd_acct_struct *acct_get(struct pid_namespace *ns) mutex_lock(&res->lock); if (!res->ns) { mutex_unlock(&res->lock); pin_put(&res->pin); acct_put(res); goto again; } return res; Loading Loading @@ -175,7 +181,7 @@ static void acct_kill(struct bsd_acct_struct *acct, acct->ns = NULL; atomic_long_dec(&acct->pin.count); mutex_unlock(&acct->lock); pin_put(&acct->pin); acct_put(acct); } } Loading @@ -186,7 +192,7 @@ static void acct_pin_kill(struct fs_pin *pin) mutex_lock(&acct->lock); if (!acct->ns) { mutex_unlock(&acct->lock); pin_put(pin); acct_put(acct); acct = NULL; } acct_kill(acct, NULL); Loading Loading @@ -576,7 +582,7 @@ static void slow_acct_process(struct pid_namespace *ns) if (acct) { do_acct_process(acct); mutex_unlock(&acct->lock); pin_put(&acct->pin); acct_put(acct); } } } Loading Loading
fs/fs_pin.c +0 −11 Original line number Diff line number Diff line Loading @@ -4,19 +4,8 @@ #include "internal.h" #include "mount.h" static void pin_free_rcu(struct rcu_head *head) { kfree(container_of(head, struct fs_pin, rcu)); } static DEFINE_SPINLOCK(pin_lock); void pin_put(struct fs_pin *p) { if (atomic_long_dec_and_test(&p->count)) call_rcu(&p->rcu, pin_free_rcu); } void pin_remove(struct fs_pin *pin) { spin_lock(&pin_lock); Loading
include/linux/fs_pin.h +0 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,5 @@ struct fs_pin { void (*kill)(struct fs_pin *); }; void pin_put(struct fs_pin *); void pin_remove(struct fs_pin *); void pin_insert(struct fs_pin *, struct vfsmount *);
kernel/acct.c +10 −4 Original line number Diff line number Diff line Loading @@ -124,6 +124,12 @@ static int check_free_space(struct bsd_acct_struct *acct) return acct->active; } static void acct_put(struct bsd_acct_struct *p) { if (atomic_long_dec_and_test(&p->pin.count)) kfree_rcu(p, pin.rcu); } static struct bsd_acct_struct *acct_get(struct pid_namespace *ns) { struct bsd_acct_struct *res; Loading @@ -144,7 +150,7 @@ static struct bsd_acct_struct *acct_get(struct pid_namespace *ns) mutex_lock(&res->lock); if (!res->ns) { mutex_unlock(&res->lock); pin_put(&res->pin); acct_put(res); goto again; } return res; Loading Loading @@ -175,7 +181,7 @@ static void acct_kill(struct bsd_acct_struct *acct, acct->ns = NULL; atomic_long_dec(&acct->pin.count); mutex_unlock(&acct->lock); pin_put(&acct->pin); acct_put(acct); } } Loading @@ -186,7 +192,7 @@ static void acct_pin_kill(struct fs_pin *pin) mutex_lock(&acct->lock); if (!acct->ns) { mutex_unlock(&acct->lock); pin_put(pin); acct_put(acct); acct = NULL; } acct_kill(acct, NULL); Loading Loading @@ -576,7 +582,7 @@ static void slow_acct_process(struct pid_namespace *ns) if (acct) { do_acct_process(acct); mutex_unlock(&acct->lock); pin_put(&acct->pin); acct_put(acct); } } } Loading