summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2020-02-08 13:04:49 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2020-02-08 13:04:49 -0800
commit236f45329460f76d058111de1a1cea12f5a8b734 (patch)
treeca848d9200a3a785f6cbbbff2720a4ff021c5947 /mm
parent995933305e11dc8698fdba249ca5f2d145b1d657 (diff)
parent12efec5602744c5a185049eb4fcfd9aebe01bd6f (diff)
downloadlinux-236f45329460f76d058111de1a1cea12f5a8b734.tar.gz
linux-236f45329460f76d058111de1a1cea12f5a8b734.tar.bz2
linux-236f45329460f76d058111de1a1cea12f5a8b734.zip
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull misc vfs updates from Al Viro: - bmap series from cmaiolino - getting rid of convolutions in copy_mount_options() (use a couple of copy_from_user() instead of the __get_user() crap) * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: saner copy_mount_options() fibmap: Reject negative block numbers fibmap: Use bmap instead of ->bmap method in ioctl_fibmap ecryptfs: drop direct calls to ->bmap cachefiles: drop direct usage of ->bmap method. fs: Enable bmap() function to properly return errors
Diffstat (limited to 'mm')
-rw-r--r--mm/page_io.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/mm/page_io.c b/mm/page_io.c
index 3a198deb8bb1..76965be1d40e 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -177,8 +177,9 @@ int generic_swapfile_activate(struct swap_info_struct *sis,
cond_resched();
- first_block = bmap(inode, probe_block);
- if (first_block == 0)
+ first_block = probe_block;
+ ret = bmap(inode, &first_block);
+ if (ret || !first_block)
goto bad_bmap;
/*
@@ -193,9 +194,11 @@ int generic_swapfile_activate(struct swap_info_struct *sis,
block_in_page++) {
sector_t block;
- block = bmap(inode, probe_block + block_in_page);
- if (block == 0)
+ block = probe_block + block_in_page;
+ ret = bmap(inode, &block);
+ if (ret || !block)
goto bad_bmap;
+
if (block != first_block + block_in_page) {
/* Discontiguity */
probe_block++;