mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-21 10:01:00 +00:00
zonefs: prevent use of seq files as swap file
commit1601ea068b
upstream. The sequential write constraint of sequential zone file prevent their use as swap files. Only allow conventional zone files to be used as swap files. Fixes:8dcc1a9d90
("fs: New zonefs file system") Cc: <stable@vger.kernel.org> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
dfbdbf0f35
commit
9c1c5e81a0
1 changed files with 16 additions and 0 deletions
|
@ -159,6 +159,21 @@ static int zonefs_writepages(struct address_space *mapping,
|
|||
return iomap_writepages(mapping, wbc, &wpc, &zonefs_writeback_ops);
|
||||
}
|
||||
|
||||
static int zonefs_swap_activate(struct swap_info_struct *sis,
|
||||
struct file *swap_file, sector_t *span)
|
||||
{
|
||||
struct inode *inode = file_inode(swap_file);
|
||||
struct zonefs_inode_info *zi = ZONEFS_I(inode);
|
||||
|
||||
if (zi->i_ztype != ZONEFS_ZTYPE_CNV) {
|
||||
zonefs_err(inode->i_sb,
|
||||
"swap file: not a conventional zone file\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return iomap_swapfile_activate(sis, swap_file, span, &zonefs_iomap_ops);
|
||||
}
|
||||
|
||||
static const struct address_space_operations zonefs_file_aops = {
|
||||
.readpage = zonefs_readpage,
|
||||
.readahead = zonefs_readahead,
|
||||
|
@ -171,6 +186,7 @@ static const struct address_space_operations zonefs_file_aops = {
|
|||
.is_partially_uptodate = iomap_is_partially_uptodate,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
.direct_IO = noop_direct_IO,
|
||||
.swap_activate = zonefs_swap_activate,
|
||||
};
|
||||
|
||||
static void zonefs_update_stats(struct inode *inode, loff_t new_isize)
|
||||
|
|
Loading…
Reference in a new issue