commit ac58e4fb03f9d111d733a4ad379d06eef3a24705 moved ext4_bmap from generic_block_bmap to iomap_bmap, this introduced a regression which prevents some user from using previously working swapfiles. The kernel will complain about holes while there is none. What is happening here is that the swapfile has unwritten mappings, which is rejected by iomap_bmap, but was accepted by ext4_get_block. This commit makes sure iomap_bmap would accept unwritten mappings as well. Signed-off-by: Yuxuan Shui <yshuiv7@xxxxxxxxx> --- fs/iomap/fiemap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/iomap/fiemap.c b/fs/iomap/fiemap.c index d55e8f491a5e..fb488dcfa8c7 100644 --- a/fs/iomap/fiemap.c +++ b/fs/iomap/fiemap.c @@ -115,7 +115,7 @@ iomap_bmap_actor(struct inode *inode, loff_t pos, loff_t length, { sector_t *bno = data, addr; - if (iomap->type == IOMAP_MAPPED) { + if (iomap->type == IOMAP_MAPPED || iomap->type == IOMAP_UNWRITTEN) { addr = (pos - iomap->offset + iomap->addr) >> inode->i_blkbits; *bno = addr; } -- 2.26.2