From: Daeho Jeong Date: Mon, 12 Oct 2020 04:59:47 +0000 (+0900) Subject: f2fs: fix writecount false positive in releasing compress blocks X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8c8cf26ae302cb9dd47935f705945c985f7f5348;p=linux.git f2fs: fix writecount false positive in releasing compress blocks In current condition check, if it detects writecount, it return -EBUSY regardless of f_mode of the file. Fixed it. Signed-off-by: Daeho Jeong Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 62efbf1b2b62c..7ceb6e30fc8c2 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -3511,7 +3511,8 @@ static int f2fs_release_compress_blocks(struct file *filp, unsigned long arg) inode_lock(inode); writecount = atomic_read(&inode->i_writecount); - if ((filp->f_mode & FMODE_WRITE && writecount != 1) || writecount) { + if ((filp->f_mode & FMODE_WRITE && writecount != 1) || + (!(filp->f_mode & FMODE_WRITE) && writecount)) { ret = -EBUSY; goto out; }