Commit 9136277 1 parent a065811 commit 9136277 Copy full SHA for 9136277
File tree 1 file changed +8
-1
lines changed
1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change 16
16
static struct kmem_cache * work_cache ;
17
17
static struct workqueue_struct * ksmbd_wq ;
18
18
19
+ DEFINE_MUTEX (work_alloc_lock );
20
+
19
21
struct ksmbd_work * ksmbd_alloc_work_struct (void )
20
22
{
21
- struct ksmbd_work * work = kmem_cache_zalloc ( work_cache , KSMBD_DEFAULT_GFP ) ;
23
+ struct ksmbd_work * work ;
22
24
25
+ mutex_lock (& work_alloc_lock );
26
+ work = kmem_cache_zalloc (work_cache , KSMBD_DEFAULT_GFP );
27
+ mutex_unlock (& work_alloc_lock );
23
28
if (work ) {
24
29
work -> compound_fid = KSMBD_NO_FID ;
25
30
work -> compound_pfid = KSMBD_NO_FID ;
@@ -64,7 +69,9 @@ void ksmbd_free_work_struct(struct ksmbd_work *work)
64
69
65
70
if (work -> async_id )
66
71
ksmbd_release_id (& work -> conn -> async_ida , work -> async_id );
72
+ mutex_lock (& work_alloc_lock );
67
73
kmem_cache_free (work_cache , work );
74
+ mutex_unlock (& work_alloc_lock );
68
75
}
69
76
70
77
void ksmbd_work_pool_destroy (void )
You can’t perform that action at this time.
0 commit comments