Skip to content
  • Paulo Alcantara (SUSE)'s avatar
    cifs: Fix memory allocation in __smb2_handle_cancelled_cmd() · 0a5a9886
    Paulo Alcantara (SUSE) authored
    
    
    __smb2_handle_cancelled_cmd() is called under a spin lock held in
    cifs_mid_q_entry_release(), so make its memory allocation GFP_ATOMIC.
    
    This issue was observed when running xfstests generic/028:
    
    [ 1722.589204] CIFS VFS: \\192.168.30.26 Cancelling wait for mid 72064 cmd: 5
    [ 1722.590687] CIFS VFS: \\192.168.30.26 Cancelling wait for mid 72065 cmd: 17
    [ 1722.593529] CIFS VFS: \\192.168.30.26 Cancelling wait for mid 72066 cmd: 6
    [ 1723.039014] BUG: sleeping function called from invalid context at mm/slab.h:565
    [ 1723.040710] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 30877, name: cifsd
    [ 1723.045098] CPU: 3 PID: 30877 Comm: cifsd Not tainted 5.5.0-rc4+ #313
    [ 1723.046256] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba527-rebuilt.opensuse.org 04/01/2014
    [ 1723.048221] Call Trace:
    [ 1723.048689]  dump_stack+0x97/0xe0
    [ 1723.049268]  ___might_sleep.cold+0xd1/0xe1
    [ 1723.050069]  kmem_cache_alloc_trace+0x204/0x2b0
    [ 1723.051051]  __smb2_handle_cancelled_cmd+0x40/0x140 [cifs]
    [ 1723.052137]  smb2_handle_cancelled_mid+0xf6/0x120 [cifs]
    [ 1723.053247]  cifs_mid_q_entry_release+0x44d/0x630 [cifs]
    [ 1723.054351]  ? cifs_reconnect+0x26a/0x1620 [cifs]
    [ 1723.055325]  cifs_demultiplex_thread+0xad4/0x14a0 [cifs]
    [ 1723.056458]  ? cifs_handle_standard+0x2c0/0x2c0 [cifs]
    [ 1723.057365]  ? kvm_sched_clock_read+0x14/0x30
    [ 1723.058197]  ? sched_clock+0x5/0x10
    [ 1723.058838]  ? sched_clock_cpu+0x18/0x110
    [ 1723.059629]  ? lockdep_hardirqs_on+0x17d/0x250
    [ 1723.060456]  kthread+0x1ab/0x200
    [ 1723.061149]  ? cifs_handle_standard+0x2c0/0x2c0 [cifs]
    [ 1723.062078]  ? kthread_create_on_node+0xd0/0xd0
    [ 1723.062897]  ret_from_fork+0x3a/0x50
    
    Signed-off-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
    Fixes: 9150c3ad
    
     ("CIFS: Close open handle after interrupted close")
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    Reviewed-by: default avatarPavel Shilovsky <pshilov@microsoft.com>
    0a5a9886