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

Commit 2988325e authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs: give a try to do atomic write in -ENOMEM case



It'd be better to retry writing atomic pages when we get -ENOMEM.

Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent dc109d57
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -309,17 +309,21 @@ static int __commit_inmem_pages(struct inode *inode,
				inode_dec_dirty_pages(inode);
				remove_dirty_inode(inode);
			}

retry:
			fio.page = page;
			fio.old_blkaddr = NULL_ADDR;
			fio.encrypted_page = NULL;
			fio.need_lock = LOCK_DONE;
			err = do_write_data_page(&fio);
			if (err) {
				if (err == -ENOMEM) {
					congestion_wait(BLK_RW_ASYNC, HZ/50);
					cond_resched();
					goto retry;
				}
				unlock_page(page);
				break;
			}

			/* record old blkaddr for revoking */
			cur->old_addr = fio.old_blkaddr;
			last_idx = page->index;