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

Commit 3375f696 authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim
Browse files

f2fs: use inode mutex to keep atomicity of f2fs_falloc



Previously without protection of inode mutex, f2fs_falloc and other data
correlated operations will interfere with each other.
So let's use inode mutex to keep atomicity of f2fs_falloc.

Signed-off-by: default avatarChao Yu <chao2.yu@samsung.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
parent 1fe54f9d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -560,6 +560,8 @@ static long f2fs_fallocate(struct file *file, int mode,
	if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE))
		return -EOPNOTSUPP;

	mutex_lock(&inode->i_mutex);

	if (mode & FALLOC_FL_PUNCH_HOLE)
		ret = punch_hole(inode, offset, len);
	else
@@ -569,6 +571,9 @@ static long f2fs_fallocate(struct file *file, int mode,
		inode->i_mtime = inode->i_ctime = CURRENT_TIME;
		mark_inode_dirty(inode);
	}

	mutex_unlock(&inode->i_mutex);

	trace_f2fs_fallocate(inode, mode, offset, len, ret);
	return ret;
}