[BUG] fs/super: a possible sleep-in-atomic bug in put_super

Jia-Ju Bai
2017-10-06T08:59:39Z

According to fs/super.c, the kernel may sleep under a spinlock.
The function call path is:
put_super (acquire the spinlock)
__put_super
destroy_super
list_lru_destroy
list_lru_unregister
mutex_lock --> may sleep
memcg_get_cache_ids
down_read --> may sleep

This bug is found by my static analysis tool and my code review.

Thanks,
Jia-Ju Bai