|
@@ -486,7 +486,7 @@ next:
|
|
|
spin_unlock(&io->io_lock);
|
|
|
}
|
|
|
|
|
|
- if (fio->old_blkaddr != NEW_ADDR)
|
|
|
+ if (is_valid_blkaddr(fio->old_blkaddr))
|
|
|
verify_block_addr(fio, fio->old_blkaddr);
|
|
|
verify_block_addr(fio, fio->new_blkaddr);
|
|
|
|
|
@@ -1046,7 +1046,7 @@ next_dnode:
|
|
|
next_block:
|
|
|
blkaddr = datablock_addr(dn.inode, dn.node_page, dn.ofs_in_node);
|
|
|
|
|
|
- if (blkaddr == NEW_ADDR || blkaddr == NULL_ADDR) {
|
|
|
+ if (!is_valid_blkaddr(blkaddr)) {
|
|
|
if (create) {
|
|
|
if (unlikely(f2fs_cp_error(sbi))) {
|
|
|
err = -EIO;
|
|
@@ -1681,15 +1681,6 @@ static inline bool need_inplace_update(struct f2fs_io_info *fio)
|
|
|
return should_update_inplace(inode, fio);
|
|
|
}
|
|
|
|
|
|
-static inline bool valid_ipu_blkaddr(struct f2fs_io_info *fio)
|
|
|
-{
|
|
|
- if (fio->old_blkaddr == NEW_ADDR)
|
|
|
- return false;
|
|
|
- if (fio->old_blkaddr == NULL_ADDR)
|
|
|
- return false;
|
|
|
- return true;
|
|
|
-}
|
|
|
-
|
|
|
int do_write_data_page(struct f2fs_io_info *fio)
|
|
|
{
|
|
|
struct page *page = fio->page;
|
|
@@ -1704,7 +1695,7 @@ int do_write_data_page(struct f2fs_io_info *fio)
|
|
|
f2fs_lookup_extent_cache(inode, page->index, &ei)) {
|
|
|
fio->old_blkaddr = ei.blk + page->index - ei.fofs;
|
|
|
|
|
|
- if (valid_ipu_blkaddr(fio)) {
|
|
|
+ if (is_valid_blkaddr(fio->old_blkaddr)) {
|
|
|
ipu_force = true;
|
|
|
fio->need_lock = LOCK_DONE;
|
|
|
goto got_it;
|
|
@@ -1731,7 +1722,8 @@ got_it:
|
|
|
* If current allocation needs SSR,
|
|
|
* it had better in-place writes for updated data.
|
|
|
*/
|
|
|
- if (ipu_force || (valid_ipu_blkaddr(fio) && need_inplace_update(fio))) {
|
|
|
+ if (ipu_force || (is_valid_blkaddr(fio->old_blkaddr) &&
|
|
|
+ need_inplace_update(fio))) {
|
|
|
err = encrypt_one_page(fio);
|
|
|
if (err)
|
|
|
goto out_writepage;
|