Skip to content

Commit

Permalink
devpts: plug the memory leak in kill_sb
Browse files Browse the repository at this point in the history
When devpts is unmounted, there may be a no-longer-used IDR tree hanging
off the superblock we are about to kill.  This needs to be cleaned up
before destroying the SB.

The leak is usually not a big deal because unmounting devpts is typically
done when shutting down the whole machine.  However, shutting down an LXC
container instead of a physical machine exposes the problem (the garbage
is detectable with kmemleak).

Signed-off-by: Ilija Hadzic <[email protected]>
Cc: Sukadev Bhattiprolu <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Ilija Hadzic authored and torvalds committed Nov 13, 2013
1 parent 1bf49dd commit 66da0e1
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions fs/devpts/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,7 @@ static void devpts_kill_sb(struct super_block *sb)
{
struct pts_fs_info *fsi = DEVPTS_SB(sb);

ida_destroy(&fsi->allocated_ptys);
kfree(fsi);
kill_litter_super(sb);
}
Expand Down

0 comments on commit 66da0e1

Please sign in to comment.