Commit e655c81a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull misc filesystem fixes from Jan Kara:
 "A for ext2 sleep in atomic context in case of some fs problems and a
  cleanup of an invalidate_lock initialization"

* tag 'fixes_for_v5.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  ext2: fix sleeping in atomic bugs on error
  mm: Fully initialize invalidate_lock, amend lock class later
parents a801695f 372d1f3e
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -48,8 +48,7 @@ struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb,
	struct ext2_sb_info *sbi = EXT2_SB(sb);

	if (block_group >= sbi->s_groups_count) {
		ext2_error (sb, "ext2_get_group_desc",
			    "block_group >= groups_count - "
		WARN(1, "block_group >= groups_count - "
		     "block_group = %d, groups_count = %lu",
		     block_group, sbi->s_groups_count);

@@ -59,8 +58,7 @@ struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb,
	group_desc = block_group >> EXT2_DESC_PER_BLOCK_BITS(sb);
	offset = block_group & (EXT2_DESC_PER_BLOCK(sb) - 1);
	if (!sbi->s_group_desc[group_desc]) {
		ext2_error (sb, "ext2_get_group_desc",
			    "Group descriptor not loaded - "
		WARN(1, "Group descriptor not loaded - "
		     "block_group = %d, group_desc = %lu, desc = %lu",
		      block_group, group_desc, offset);
		return NULL;
+4 −2
Original line number Diff line number Diff line
@@ -190,8 +190,10 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
	mapping_set_gfp_mask(mapping, GFP_HIGHUSER_MOVABLE);
	mapping->private_data = NULL;
	mapping->writeback_index = 0;
	__init_rwsem(&mapping->invalidate_lock, "mapping.invalidate_lock",
		     &sb->s_type->invalidate_lock_key);
	init_rwsem(&mapping->invalidate_lock);
	lockdep_set_class_and_name(&mapping->invalidate_lock,
				   &sb->s_type->invalidate_lock_key,
				   "mapping.invalidate_lock");
	inode->i_private = NULL;
	inode->i_mapping = mapping;
	INIT_HLIST_HEAD(&inode->i_dentry);	/* buggered by rcu freeing */