mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
f2fs: fix to abort atomic write only during do_exist()
Commit7a10f0177e
("f2fs: don't give partially written atomic data from process crash") attempted to drop atomic write data after process crash, however, f2fs_abort_atomic_write() may be called from noncrash case, fix it by adding missed PF_EXITING check condition f2fs_file_flush(). - application crashs - do_exit - exit_signals -- sets PF_EXITING - exit_files - put_files_struct - close_files - filp_close - flush (f2fs_file_flush) - check atomic_write_task && PF_EXITING - f2fs_abort_atomic_write Fixes:7a10f0177e
("f2fs: don't give partially written atomic data from process crash") Signed-off-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
e6261beb0c
commit
ae267fc1cf
@ -1876,7 +1876,8 @@ static int f2fs_file_flush(struct file *file, fl_owner_t id)
|
||||
* until all the writers close its file. Since this should be done
|
||||
* before dropping file lock, it needs to do in ->flush.
|
||||
*/
|
||||
if (F2FS_I(inode)->atomic_write_task == current)
|
||||
if (F2FS_I(inode)->atomic_write_task == current &&
|
||||
(current->flags & PF_EXITING))
|
||||
f2fs_abort_atomic_write(inode, true);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user