]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iomap: don't allow holes in swapfiles
authorOmar Sandoval <osandov@fb.com>
Wed, 16 May 2018 18:13:34 +0000 (11:13 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 17 May 2018 14:17:14 +0000 (07:17 -0700)
generic_swapfile_activate() doesn't allow holes, so we should be
consistent here. This is also a bit safer: if the user creates a
swapfile with, say, truncate -s $SIZE followed by mkswap, they should
really get an error and not much less swap space than they expected.
swapon(8) will error out before calling swapon(2) if the file has holes,
anyways.

Fixes: 9d93388b0afe ("iomap: add a swapfile activation function")
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/iomap.c

index 89517442e296219b5c9ee20f55cbca9755adc449..f2456d0d8ddd6ed0bf1b4d9d521a6c5e8301a843 100644 (file)
@@ -1220,10 +1220,6 @@ static loff_t iomap_swapfile_activate_actor(struct inode *inode, loff_t pos,
                return -EINVAL;
        }
 
-       /* Skip holes. */
-       if (iomap->type == IOMAP_HOLE)
-               goto out;
-
        /* Only real or unwritten extents. */
        if (iomap->type != IOMAP_MAPPED && iomap->type != IOMAP_UNWRITTEN) {
                pr_err("swapon: file has unallocated extents\n");
@@ -1259,7 +1255,6 @@ static loff_t iomap_swapfile_activate_actor(struct inode *inode, loff_t pos,
                        return error;
                memcpy(&isi->iomap, iomap, sizeof(isi->iomap));
        }
-out:
        return count;
 }