f2fs: give a try to do atomic write in -ENOMEM case
Subsystems (2)
Jaegeuk Kim
maintainerPATCH 1/1 f2fs: give a try to do atomic write in -ENOMEM case
It'd be better to retry writing atomic pages when we get -ENOMEM.
Signed-off-by Jaegeuk Kim <[email protected]>
--- fs/f2fs/segment.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
fs/f2fs/segment.c +6 -2
@@ -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;
Signature · 1 line
2.13.0.rc1.294.g07d810a77f-goog