Alexander Aring 1532860788 fs: dlm: fix configfs memory leak
[ Upstream commit 3d2825c8c6105b0f36f3ff72760799fa2e71420e ]

This patch fixes the following memory detected by kmemleak and umount
gfs2 filesystem which removed the last lockspace:

unreferenced object 0xffff9264f482f600 (size 192):
  comm "dlm_controld", pid 325, jiffies 4294690276 (age 48.136s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 6e 6f 64 65 73 00 00 00  ........nodes...
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<00000000060481d7>] make_space+0x41/0x130
    [<000000008d905d46>] configfs_mkdir+0x1a2/0x5f0
    [<00000000729502cf>] vfs_mkdir+0x155/0x210
    [<000000000369bcf1>] do_mkdirat+0x6d/0x110
    [<00000000cc478a33>] do_syscall_64+0x33/0x40
    [<00000000ce9ccf01>] entry_SYSCALL_64_after_hwframe+0x44/0xa9

The patch just remembers the "nodes" entry pointer in space as I think
it's created as subdirectory when parent "spaces" is created. In
function drop_space() we will lost the pointer reference to nds because
configfs_remove_default_groups(). However as this subdirectory is always
available when "spaces" exists it will just be freed when "spaces" will be
freed.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-29 09:05:43 +01:00
..
2020-10-29 09:05:43 +01:00
2016-06-21 09:04:24 -05:00
2014-02-14 11:54:44 -06:00
2012-07-16 14:16:19 -05:00
2012-11-01 15:27:24 -05:00
2014-11-19 14:48:02 -06:00
2020-08-21 11:02:04 +02:00
2019-11-28 18:29:00 +01:00
2012-01-04 08:56:31 -06:00
2015-11-05 11:15:25 -08:00
2012-07-16 14:16:19 -05:00
2014-02-14 11:54:44 -06:00
2014-02-14 11:54:44 -06:00
2012-08-08 11:33:49 -05:00
2012-05-02 14:15:27 -05:00
2019-12-21 10:41:21 +01:00