diff options
Diffstat (limited to 'fs/f2fs/segment.c')
| -rw-r--r-- | fs/f2fs/segment.c | 9 | 
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index df9ed75f0b7a..40fdb4a8daeb 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -9,6 +9,7 @@  #include <linux/f2fs_fs.h>  #include <linux/bio.h>  #include <linux/blkdev.h> +#include <linux/sched/mm.h>  #include <linux/prefetch.h>  #include <linux/kthread.h>  #include <linux/swap.h> @@ -245,9 +246,7 @@ retry:  								LOOKUP_NODE);  			if (err) {  				if (err == -ENOMEM) { -					congestion_wait(BLK_RW_ASYNC, -							DEFAULT_IO_TIMEOUT); -					cond_resched(); +					memalloc_retry_wait(GFP_NOFS);  					goto retry;  				}  				err = -EAGAIN; @@ -424,9 +423,7 @@ retry:  			err = f2fs_do_write_data_page(&fio);  			if (err) {  				if (err == -ENOMEM) { -					congestion_wait(BLK_RW_ASYNC, -							DEFAULT_IO_TIMEOUT); -					cond_resched(); +					memalloc_retry_wait(GFP_NOFS);  					goto retry;  				}  				unlock_page(page);  |