• Zhang Xiaoxu's avatar
    cifs: Fix memory leak on the deferred close · ca08d0ea
    Zhang Xiaoxu authored
    xfstests on smb21 report kmemleak as below:
    
      unreferenced object 0xffff8881767d6200 (size 64):
        comm "xfs_io", pid 1284, jiffies 4294777434 (age 20.789s)
        hex dump (first 32 bytes):
          80 5a d0 11 81 88 ff ff 78 8a aa 63 81 88 ff ff  .Z......x..c....
          00 71 99 76 81 88 ff ff 00 00 00 00 00 00 00 00  .q.v............
        backtrace:
          [<00000000ad04e6ea>] cifs_close+0x92/0x2c0
          [<0000000028b93c82>] __fput+0xff/0x3f0
          [<00000000d8116851>] task_work_run+0x85/0xc0
          [<0000000027e14f9e>] do_exit+0x5e5/0x1240
          [<00000000fb492b95>] do_group_exit+0x58/0xe0
          [<00000000129a32d9>] __x64_sys_exit_group+0x28/0x30
          [<00000000e3f7d8e9>] do_syscall_64+0x35/0x80
          [<00000000102e8a0b>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
    When cancel the deferred close work, we should also cleanup the struct
    cifs_deferred_close.
    
    Fixes: 9e992755 ("cifs: Call close synchronously during unlink/rename/lease break.")
    Fixes: e3fc0656 ("cifs: Deferred close performance improvements")
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    ca08d0ea
misc.c 35.2 KB