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: Christoph Hellwig <hch@lst.de> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
committed by
Jaegeuk Kim
parent
84c5d16711
commit
0638f28b30
@@ -1871,31 +1871,30 @@ continue_unlock:
|
||||
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 @@ continue_unlock:
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user