v9fs_mount
v9fs_session_init
v9fs_cache_session_get_cookie
v9fs_random_cachetag -->alloc cachetag
v9ses->fscache = fscache_acquire_cookie -->maybe NULL
sb = sget -->fail, goto clunk
clunk_fid:
v9fs_session_close
if (v9ses->fscache) -->NULL
kfree(v9ses->cachetag)
Thus memleak happens.
Signed-off-by: Zheng Bin <[email protected]>
---
fs/9p/v9fs.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index 15a99f9c7253..39def020a074 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -500,10 +500,9 @@ void v9fs_session_close(struct v9fs_session_info *v9ses)
}
#ifdef CONFIG_9P_FSCACHE
- if (v9ses->fscache) {
+ if (v9ses->fscache)
v9fs_cache_session_put_cookie(v9ses);
- kfree(v9ses->cachetag);
- }
+ kfree(v9ses->cachetag);
#endif
kfree(v9ses->uname);
kfree(v9ses->aname);
--
2.26.0.106.g9fadedd
Zheng Bin wrote on Mon, Jun 15, 2020:
> v9fs_mount
> v9fs_session_init
> v9fs_cache_session_get_cookie
> v9fs_random_cachetag -->alloc cachetag
> v9ses->fscache = fscache_acquire_cookie -->maybe NULL
> sb = sget -->fail, goto clunk
> clunk_fid:
> v9fs_session_close
> if (v9ses->fscache) -->NULL
> kfree(v9ses->cachetag)
>
> Thus memleak happens.
>
> Signed-off-by: Zheng Bin <[email protected]>
Thanks, will run tests & queue next weekend
--
Dominique
Is this OK? I don't see it on linux-next
On 2020/6/15 18:20, Dominique Martinet wrote:
> Zheng Bin wrote on Mon, Jun 15, 2020:
>> v9fs_mount
>> v9fs_session_init
>> v9fs_cache_session_get_cookie
>> v9fs_random_cachetag -->alloc cachetag
>> v9ses->fscache = fscache_acquire_cookie -->maybe NULL
>> sb = sget -->fail, goto clunk
>> clunk_fid:
>> v9fs_session_close
>> if (v9ses->fscache) -->NULL
>> kfree(v9ses->cachetag)
>>
>> Thus memleak happens.
>>
>> Signed-off-by: Zheng Bin <[email protected]>
> Thanks, will run tests & queue next weekend
>
Zhengbin (OSKernel) wrote on Thu, Jul 09, 2020:
> Is this OK? I don't see it on linux-next
Yes, I just (still) haven't tested them, sorry.
It's in git://github.com/martinetd/linux branch 9p-test
--
Dominique