Commit 0638f28b authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jaegeuk Kim
Browse files

f2fs: simplify return value handling in f2fs_fsync_node_pages



Always assign ret where the error happens, and jump to out instead
of multiple loop exit conditions to prepare for changes in the
__write_node_folio calling convention.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 84c5d167
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -1871,31 +1871,30 @@ int f2fs_fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
			if (!folio_clear_dirty_for_io(folio))
				goto continue_unlock;

			ret = __write_node_folio(folio, atomic &&
			if (__write_node_folio(folio, atomic &&
						folio == last_folio,
						&submitted, wbc, true,
						FS_NODE_IO, seq_id);
			if (ret) {
						FS_NODE_IO, seq_id)) {
				folio_unlock(folio);
				f2fs_folio_put(last_folio, false);
				break;
			} else if (submitted) {
				nwritten++;
				folio_batch_release(&fbatch);
				ret = -EIO;
				goto out;
			}
			if (submitted)
				nwritten++;

			if (folio == last_folio) {
				f2fs_folio_put(folio, false);
				folio_batch_release(&fbatch);
				marked = true;
				break;
				goto out;
			}
		}
		folio_batch_release(&fbatch);
		cond_resched();

		if (ret || marked)
			break;
	}
	if (!ret && atomic && !marked) {
	if (atomic && !marked) {
		f2fs_debug(sbi, "Retry to write fsync mark: ino=%u, idx=%lx",
			   ino, last_folio->index);
		folio_lock(last_folio);
@@ -1907,7 +1906,7 @@ int f2fs_fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
out:
	if (nwritten)
		f2fs_submit_merged_write_cond(sbi, NULL, NULL, ino, NODE);
	return ret ? -EIO : 0;
	return ret;
}

static int f2fs_match_ino(struct inode *inode, unsigned long ino, void *data)