zonefs: fix handling of explicit_open option on mount
Ignoring the explicit_open mount option on mount for devices that do not
have a limit on the number of open zones must be done after the mount
options are parsed and set in s_mount_opts. Move the check to ignore
the explicit_open option after the call to zonefs_parse_options() in
zonefs_fill_super().
Fixes: b5c00e9757
("zonefs: open/close zone on file open/close")
Cc: <stable@vger.kernel.org>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
This commit is contained in:
Родитель
f2906aa863
Коммит
a2a513be71
|
@ -1760,12 +1760,6 @@ static int zonefs_fill_super(struct super_block *sb, void *data, int silent)
|
|||
|
||||
atomic_set(&sbi->s_wro_seq_files, 0);
|
||||
sbi->s_max_wro_seq_files = bdev_max_open_zones(sb->s_bdev);
|
||||
if (!sbi->s_max_wro_seq_files &&
|
||||
sbi->s_mount_opts & ZONEFS_MNTOPT_EXPLICIT_OPEN) {
|
||||
zonefs_info(sb, "No open zones limit. Ignoring explicit_open mount option\n");
|
||||
sbi->s_mount_opts &= ~ZONEFS_MNTOPT_EXPLICIT_OPEN;
|
||||
}
|
||||
|
||||
atomic_set(&sbi->s_active_seq_files, 0);
|
||||
sbi->s_max_active_seq_files = bdev_max_active_zones(sb->s_bdev);
|
||||
|
||||
|
@ -1790,6 +1784,12 @@ static int zonefs_fill_super(struct super_block *sb, void *data, int silent)
|
|||
zonefs_info(sb, "Mounting %u zones",
|
||||
blkdev_nr_zones(sb->s_bdev->bd_disk));
|
||||
|
||||
if (!sbi->s_max_wro_seq_files &&
|
||||
sbi->s_mount_opts & ZONEFS_MNTOPT_EXPLICIT_OPEN) {
|
||||
zonefs_info(sb, "No open zones limit. Ignoring explicit_open mount option\n");
|
||||
sbi->s_mount_opts &= ~ZONEFS_MNTOPT_EXPLICIT_OPEN;
|
||||
}
|
||||
|
||||
/* Create root directory inode */
|
||||
ret = -ENOMEM;
|
||||
inode = new_inode(sb);
|
||||
|
|
Загрузка…
Ссылка в новой задаче