diff options
Diffstat (limited to 'fs/dlm/memory.c')
-rw-r--r-- | fs/dlm/memory.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/dlm/memory.c b/fs/dlm/memory.c index f7cf4589fae8..48dfc27861f4 100644 --- a/fs/dlm/memory.c +++ b/fs/dlm/memory.c | |||
@@ -84,6 +84,15 @@ struct dlm_lkb *allocate_lkb(struct dlm_ls *ls) | |||
84 | 84 | ||
85 | void free_lkb(struct dlm_lkb *lkb) | 85 | void free_lkb(struct dlm_lkb *lkb) |
86 | { | 86 | { |
87 | if (lkb->lkb_flags & DLM_IFL_USER) { | ||
88 | struct dlm_user_args *ua; | ||
89 | ua = (struct dlm_user_args *)lkb->lkb_astparam; | ||
90 | if (ua) { | ||
91 | if (ua->lksb.sb_lvbptr) | ||
92 | kfree(ua->lksb.sb_lvbptr); | ||
93 | kfree(ua); | ||
94 | } | ||
95 | } | ||
87 | kmem_cache_free(lkb_cache, lkb); | 96 | kmem_cache_free(lkb_cache, lkb); |
88 | } | 97 | } |
89 | 98 | ||