]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks
authorMikulas Patocka <mpatocka@redhat.com>
Thu, 16 Oct 2014 18:45:20 +0000 (14:45 -0400)
committerJiri Slaby <jslaby@suse.cz>
Wed, 19 Nov 2014 17:38:21 +0000 (18:38 +0100)
commitd1bb12f652136abaa633ca8a8e2cd700c960fefb
tree057d7d84d1ca979478653efcf6ad1341268de672
parenta39c8649e480bf8bf6419bc1ed6c8d66fbc89ebb
dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks

commit 9d28eb12447ee08bb5d1e8bb3195cf20e1ecd1c0 upstream.

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: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/md/dm-bufio.c