summaryrefslogtreecommitdiffstats
path: root/fs/udf
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2015-01-28 08:38:20 +0100
committerJan Kara <jack@suse.cz>2015-01-28 09:00:40 +0100
commitb07ef35244424cbeda9844198607c7077099c82c (patch)
tree4364a7689dd8977d7cdb2158a2133dead4603773 /fs/udf
parent188c901941efd43cbf21e8f4f9e9a276536b989c (diff)
downloadlinux-b07ef35244424cbeda9844198607c7077099c82c.tar.gz
linux-b07ef35244424cbeda9844198607c7077099c82c.tar.bz2
linux-b07ef35244424cbeda9844198607c7077099c82c.zip
udf: Release preallocation on last writeable close
Commit 6fb1ca92a640 "udf: Fix race between write(2) and close(2)" changed the condition when preallocation is released. The idea was that we don't want to release the preallocation for an inode on close when there are other writeable file descriptors for the inode. However the condition was written in the opposite way so we released preallocation only if there were other writeable file descriptors. Fix the problem by changing the condition properly. CC: stable@vger.kernel.org Fixes: 6fb1ca92a6409a9d5b0696447cd4997bc9aaf5a2 Reported-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf')
-rw-r--r--fs/udf/file.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/udf/file.c b/fs/udf/file.c
index bb15771b92ae..08f3555fbeac 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -224,7 +224,7 @@ out:
static int udf_release_file(struct inode *inode, struct file *filp)
{
if (filp->f_mode & FMODE_WRITE &&
- atomic_read(&inode->i_writecount) > 1) {
+ atomic_read(&inode->i_writecount) == 1) {
/*
* Grab i_mutex to avoid races with writes changing i_size
* while we are running.