mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-28 16:56:26 +00:00
ext2: remove nobh support
The nobh mode is an obscure feature to save lowlevel for large memory 32-bit configurations while trading for much slower performance and has been long obsolete. Remove it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
This commit is contained in:
parent
9139710148
commit
0cc5b4ce7a
@ -59,8 +59,6 @@ acl Enable POSIX Access Control Lists support
|
||||
(requires CONFIG_EXT2_FS_POSIX_ACL).
|
||||
noacl Don't support POSIX ACLs.
|
||||
|
||||
nobh Do not attach buffer_heads to file pagecache.
|
||||
|
||||
quota, usrquota Enable user disk quota support
|
||||
(requires CONFIG_QUOTA).
|
||||
|
||||
|
@ -795,7 +795,6 @@ extern const struct file_operations ext2_file_operations;
|
||||
/* inode.c */
|
||||
extern void ext2_set_file_ops(struct inode *inode);
|
||||
extern const struct address_space_operations ext2_aops;
|
||||
extern const struct address_space_operations ext2_nobh_aops;
|
||||
extern const struct iomap_ops ext2_iomap_ops;
|
||||
|
||||
/* namei.c */
|
||||
|
@ -908,25 +908,6 @@ static int ext2_write_end(struct file *file, struct address_space *mapping,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
ext2_nobh_write_begin(struct file *file, struct address_space *mapping,
|
||||
loff_t pos, unsigned len, struct page **pagep, void **fsdata)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = nobh_write_begin(mapping, pos, len, pagep, fsdata,
|
||||
ext2_get_block);
|
||||
if (ret < 0)
|
||||
ext2_write_failed(mapping, pos + len);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ext2_nobh_writepage(struct page *page,
|
||||
struct writeback_control *wbc)
|
||||
{
|
||||
return nobh_writepage(page, ext2_get_block, wbc);
|
||||
}
|
||||
|
||||
static sector_t ext2_bmap(struct address_space *mapping, sector_t block)
|
||||
{
|
||||
return generic_block_bmap(mapping,block,ext2_get_block);
|
||||
@ -978,21 +959,6 @@ const struct address_space_operations ext2_aops = {
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
const struct address_space_operations ext2_nobh_aops = {
|
||||
.dirty_folio = block_dirty_folio,
|
||||
.invalidate_folio = block_invalidate_folio,
|
||||
.read_folio = ext2_read_folio,
|
||||
.readahead = ext2_readahead,
|
||||
.writepage = ext2_nobh_writepage,
|
||||
.write_begin = ext2_nobh_write_begin,
|
||||
.write_end = nobh_write_end,
|
||||
.bmap = ext2_bmap,
|
||||
.direct_IO = ext2_direct_IO,
|
||||
.writepages = ext2_writepages,
|
||||
.migrate_folio = buffer_migrate_folio,
|
||||
.error_remove_page = generic_error_remove_page,
|
||||
};
|
||||
|
||||
static const struct address_space_operations ext2_dax_aops = {
|
||||
.writepages = ext2_dax_writepages,
|
||||
.direct_IO = noop_direct_IO,
|
||||
@ -1298,13 +1264,10 @@ static int ext2_setsize(struct inode *inode, loff_t newsize)
|
||||
|
||||
inode_dio_wait(inode);
|
||||
|
||||
if (IS_DAX(inode)) {
|
||||
if (IS_DAX(inode))
|
||||
error = dax_zero_range(inode, newsize,
|
||||
PAGE_ALIGN(newsize) - newsize, NULL,
|
||||
&ext2_iomap_ops);
|
||||
} else if (test_opt(inode->i_sb, NOBH))
|
||||
error = nobh_truncate_page(inode->i_mapping,
|
||||
newsize, ext2_get_block);
|
||||
else
|
||||
error = block_truncate_page(inode->i_mapping,
|
||||
newsize, ext2_get_block);
|
||||
@ -1396,8 +1359,6 @@ void ext2_set_file_ops(struct inode *inode)
|
||||
inode->i_fop = &ext2_file_operations;
|
||||
if (IS_DAX(inode))
|
||||
inode->i_mapping->a_ops = &ext2_dax_aops;
|
||||
else if (test_opt(inode->i_sb, NOBH))
|
||||
inode->i_mapping->a_ops = &ext2_nobh_aops;
|
||||
else
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
}
|
||||
@ -1497,10 +1458,7 @@ struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
|
||||
} else if (S_ISDIR(inode->i_mode)) {
|
||||
inode->i_op = &ext2_dir_inode_operations;
|
||||
inode->i_fop = &ext2_dir_operations;
|
||||
if (test_opt(inode->i_sb, NOBH))
|
||||
inode->i_mapping->a_ops = &ext2_nobh_aops;
|
||||
else
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
} else if (S_ISLNK(inode->i_mode)) {
|
||||
if (ext2_inode_is_fast_symlink(inode)) {
|
||||
inode->i_link = (char *)ei->i_data;
|
||||
@ -1510,10 +1468,7 @@ struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
|
||||
} else {
|
||||
inode->i_op = &ext2_symlink_inode_operations;
|
||||
inode_nohighmem(inode);
|
||||
if (test_opt(inode->i_sb, NOBH))
|
||||
inode->i_mapping->a_ops = &ext2_nobh_aops;
|
||||
else
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
}
|
||||
} else {
|
||||
inode->i_op = &ext2_special_inode_operations;
|
||||
|
@ -178,10 +178,7 @@ static int ext2_symlink (struct user_namespace * mnt_userns, struct inode * dir,
|
||||
/* slow symlink */
|
||||
inode->i_op = &ext2_symlink_inode_operations;
|
||||
inode_nohighmem(inode);
|
||||
if (test_opt(inode->i_sb, NOBH))
|
||||
inode->i_mapping->a_ops = &ext2_nobh_aops;
|
||||
else
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
err = page_symlink(inode, symname, l);
|
||||
if (err)
|
||||
goto out_fail;
|
||||
@ -247,10 +244,7 @@ static int ext2_mkdir(struct user_namespace * mnt_userns,
|
||||
|
||||
inode->i_op = &ext2_dir_inode_operations;
|
||||
inode->i_fop = &ext2_dir_operations;
|
||||
if (test_opt(inode->i_sb, NOBH))
|
||||
inode->i_mapping->a_ops = &ext2_nobh_aops;
|
||||
else
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
inode->i_mapping->a_ops = &ext2_aops;
|
||||
|
||||
inode_inc_link_count(inode);
|
||||
|
||||
|
@ -296,9 +296,6 @@ static int ext2_show_options(struct seq_file *seq, struct dentry *root)
|
||||
seq_puts(seq, ",noacl");
|
||||
#endif
|
||||
|
||||
if (test_opt(sb, NOBH))
|
||||
seq_puts(seq, ",nobh");
|
||||
|
||||
if (test_opt(sb, USRQUOTA))
|
||||
seq_puts(seq, ",usrquota");
|
||||
|
||||
@ -551,7 +548,8 @@ static int parse_options(char *options, struct super_block *sb,
|
||||
clear_opt (opts->s_mount_opt, OLDALLOC);
|
||||
break;
|
||||
case Opt_nobh:
|
||||
set_opt (opts->s_mount_opt, NOBH);
|
||||
ext2_msg(sb, KERN_INFO,
|
||||
"nobh option not supported");
|
||||
break;
|
||||
#ifdef CONFIG_EXT2_FS_XATTR
|
||||
case Opt_user_xattr:
|
||||
|
Loading…
Reference in New Issue
Block a user