diff options
Diffstat (limited to 'fs/f2fs')
| -rw-r--r-- | fs/f2fs/Makefile | 1 | ||||
| -rw-r--r-- | fs/f2fs/f2fs.h | 2 | ||||
| -rw-r--r-- | fs/f2fs/segment.c | 6 | ||||
| -rw-r--r-- | fs/f2fs/super.c | 2 | 
4 files changed, 6 insertions, 5 deletions
| diff --git a/fs/f2fs/Makefile b/fs/f2fs/Makefile index a0dc559b1b47..776c4b936504 100644 --- a/fs/f2fs/Makefile +++ b/fs/f2fs/Makefile @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0  obj-$(CONFIG_F2FS_FS) += f2fs.o  f2fs-y		:= dir.o file.o inode.o namei.o hash.o super.o inline.o diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 9a7c90386947..4b4a72f392be 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -2525,7 +2525,7 @@ void invalidate_blocks(struct f2fs_sb_info *sbi, block_t addr);  bool is_checkpointed_data(struct f2fs_sb_info *sbi, block_t blkaddr);  void refresh_sit_entry(struct f2fs_sb_info *sbi, block_t old, block_t new);  void stop_discard_thread(struct f2fs_sb_info *sbi); -void f2fs_wait_discard_bios(struct f2fs_sb_info *sbi); +void f2fs_wait_discard_bios(struct f2fs_sb_info *sbi, bool umount);  void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc);  void release_discard_addrs(struct f2fs_sb_info *sbi);  int npages_for_summary_flush(struct f2fs_sb_info *sbi, bool for_ra); diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 621b9b3d320b..c695ff462ee6 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1210,11 +1210,11 @@ void stop_discard_thread(struct f2fs_sb_info *sbi)  }  /* This comes from f2fs_put_super and f2fs_trim_fs */ -void f2fs_wait_discard_bios(struct f2fs_sb_info *sbi) +void f2fs_wait_discard_bios(struct f2fs_sb_info *sbi, bool umount)  {  	__issue_discard_cmd(sbi, false);  	__drop_discard_cmd(sbi); -	__wait_discard_cmd(sbi, false); +	__wait_discard_cmd(sbi, !umount);  }  static void mark_discard_range_all(struct f2fs_sb_info *sbi) @@ -2244,7 +2244,7 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range)  	}  	/* It's time to issue all the filed discards */  	mark_discard_range_all(sbi); -	f2fs_wait_discard_bios(sbi); +	f2fs_wait_discard_bios(sbi, false);  out:  	range->len = F2FS_BLK_TO_BYTES(cpc.trimmed);  	return err; diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 89f61eb3d167..933c3d529e65 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -801,7 +801,7 @@ static void f2fs_put_super(struct super_block *sb)  	}  	/* be sure to wait for any on-going discard commands */ -	f2fs_wait_discard_bios(sbi); +	f2fs_wait_discard_bios(sbi, true);  	if (f2fs_discard_en(sbi) && !sbi->discard_blks) {  		struct cp_control cpc = { |