diff options
-rw-r--r-- | fs/fs_pin.c | 4 | ||||
-rw-r--r-- | include/linux/fs_pin.h | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/fs/fs_pin.c b/fs/fs_pin.c index b06c98796afb..611b5408f6ec 100644 --- a/fs/fs_pin.c +++ b/fs/fs_pin.c | |||
@@ -9,8 +9,8 @@ static DEFINE_SPINLOCK(pin_lock); | |||
9 | void pin_remove(struct fs_pin *pin) | 9 | void pin_remove(struct fs_pin *pin) |
10 | { | 10 | { |
11 | spin_lock(&pin_lock); | 11 | spin_lock(&pin_lock); |
12 | hlist_del(&pin->m_list); | 12 | hlist_del_init(&pin->m_list); |
13 | hlist_del(&pin->s_list); | 13 | hlist_del_init(&pin->s_list); |
14 | spin_unlock(&pin_lock); | 14 | spin_unlock(&pin_lock); |
15 | spin_lock_irq(&pin->wait.lock); | 15 | spin_lock_irq(&pin->wait.lock); |
16 | pin->done = 1; | 16 | pin->done = 1; |
diff --git a/include/linux/fs_pin.h b/include/linux/fs_pin.h index 9dc4e0384bfb..3886b3bffd7f 100644 --- a/include/linux/fs_pin.h +++ b/include/linux/fs_pin.h | |||
@@ -13,6 +13,8 @@ struct vfsmount; | |||
13 | static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *)) | 13 | static inline void init_fs_pin(struct fs_pin *p, void (*kill)(struct fs_pin *)) |
14 | { | 14 | { |
15 | init_waitqueue_head(&p->wait); | 15 | init_waitqueue_head(&p->wait); |
16 | INIT_HLIST_NODE(&p->s_list); | ||
17 | INIT_HLIST_NODE(&p->m_list); | ||
16 | p->kill = kill; | 18 | p->kill = kill; |
17 | } | 19 | } |
18 | 20 | ||