|
@@ -367,11 +367,6 @@ void fuse_conn_kill(struct fuse_conn *fc)
|
|
|
wake_up_all(&fc->waitq);
|
|
|
wake_up_all(&fc->blocked_waitq);
|
|
|
wake_up_all(&fc->reserved_req_waitq);
|
|
|
- mutex_lock(&fuse_mutex);
|
|
|
- list_del(&fc->entry);
|
|
|
- fuse_ctl_remove_conn(fc);
|
|
|
- mutex_unlock(&fuse_mutex);
|
|
|
- fuse_bdi_destroy(fc);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(fuse_conn_kill);
|
|
|
|
|
@@ -380,7 +375,14 @@ static void fuse_put_super(struct super_block *sb)
|
|
|
struct fuse_conn *fc = get_fuse_conn_super(sb);
|
|
|
|
|
|
fuse_send_destroy(fc);
|
|
|
+
|
|
|
fuse_conn_kill(fc);
|
|
|
+ mutex_lock(&fuse_mutex);
|
|
|
+ list_del(&fc->entry);
|
|
|
+ fuse_ctl_remove_conn(fc);
|
|
|
+ mutex_unlock(&fuse_mutex);
|
|
|
+ fuse_bdi_destroy(fc);
|
|
|
+
|
|
|
fuse_conn_put(fc);
|
|
|
}
|
|
|
|