• Mikulas Patocka's avatar
    dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks · 9d28eb12
    Mikulas Patocka authored
    The shrinker uses gfp flags to indicate what kind of operation can the
    driver wait for. If __GFP_IO flag is present, the driver can wait for
    block I/O operations, if __GFP_FS flag is present, the driver can wait on
    operations involving the filesystem.
    
    dm-bufio tested for __GFP_IO. However, dm-bufio can run on a loop block
    device that makes calls into the filesystem. If __GFP_IO is present and
    __GFP_FS isn't, dm-bufio could still block on filesystem operations if it
    runs on a loop block device.
    
    The change from __GFP_IO to __GFP_FS supposedly fixes one observed (though
    unreproducible) deadlock involving dm-bufio and loop device.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Cc: stable@vger.kernel.org
    9d28eb12
dm-bufio.c 44.4 KB