|
@@ -2735,14 +2735,16 @@ static void ext4_remove_li_request(struct ext4_li_request *elr)
|
|
|
|
|
|
static void ext4_unregister_li_request(struct super_block *sb)
|
|
static void ext4_unregister_li_request(struct super_block *sb)
|
|
{
|
|
{
|
|
- struct ext4_li_request *elr = EXT4_SB(sb)->s_li_request;
|
|
|
|
-
|
|
|
|
- if (!ext4_li_info)
|
|
|
|
|
|
+ mutex_lock(&ext4_li_mtx);
|
|
|
|
+ if (!ext4_li_info) {
|
|
|
|
+ mutex_unlock(&ext4_li_mtx);
|
|
return;
|
|
return;
|
|
|
|
+ }
|
|
|
|
|
|
mutex_lock(&ext4_li_info->li_list_mtx);
|
|
mutex_lock(&ext4_li_info->li_list_mtx);
|
|
- ext4_remove_li_request(elr);
|
|
|
|
|
|
+ ext4_remove_li_request(EXT4_SB(sb)->s_li_request);
|
|
mutex_unlock(&ext4_li_info->li_list_mtx);
|
|
mutex_unlock(&ext4_li_info->li_list_mtx);
|
|
|
|
+ mutex_unlock(&ext4_li_mtx);
|
|
}
|
|
}
|
|
|
|
|
|
static struct task_struct *ext4_lazyinit_task;
|
|
static struct task_struct *ext4_lazyinit_task;
|