Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52e44777 authored by Jan Kara's avatar Jan Kara Committed by Theodore Ts'o
Browse files

ext4: standardize error handling in ext4_da_write_inline_data_begin()



The function has a bit non-standard (for ext4) error recovery in that it
used a mix of 'out' labels and testing for 'handle' being NULL. There
isn't a good reason for that in the function so clean it up a bit.

Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent bc0ca9df
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -859,7 +859,6 @@ int ext4_da_write_inline_data_begin(struct address_space *mapping,
	handle = ext4_journal_start(inode, EXT4_HT_INODE, 1);
	if (IS_ERR(handle)) {
		ret = PTR_ERR(handle);
		handle = NULL;
		goto out;
	}

@@ -869,7 +868,7 @@ int ext4_da_write_inline_data_begin(struct address_space *mapping,
	if (inline_size >= pos + len) {
		ret = ext4_prepare_inline_data(handle, inode, pos + len);
		if (ret && ret != -ENOSPC)
			goto out;
			goto out_journal;
	}

	if (ret == -ENOSPC) {
@@ -878,7 +877,6 @@ int ext4_da_write_inline_data_begin(struct address_space *mapping,
							    flags,
							    fsdata);
		ext4_journal_stop(handle);
		handle = NULL;
		if (ret == -ENOSPC &&
		    ext4_should_retry_alloc(inode->i_sb, &retries))
			goto retry_journal;
@@ -894,7 +892,7 @@ int ext4_da_write_inline_data_begin(struct address_space *mapping,
	page = grab_cache_page_write_begin(mapping, 0, flags);
	if (!page) {
		ret = -ENOMEM;
		goto out;
		goto out_journal;
	}

	down_read(&EXT4_I(inode)->xattr_sem);
@@ -911,16 +909,15 @@ int ext4_da_write_inline_data_begin(struct address_space *mapping,

	up_read(&EXT4_I(inode)->xattr_sem);
	*pagep = page;
	handle = NULL;
	brelse(iloc.bh);
	return 1;
out_release_page:
	up_read(&EXT4_I(inode)->xattr_sem);
	unlock_page(page);
	page_cache_release(page);
out:
	if (handle)
out_journal:
	ext4_journal_stop(handle);
out:
	brelse(iloc.bh);
	return ret;
}