aboutsummaryrefslogtreecommitdiff
path: root/fs/udf/file.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-09-14 14:35:07 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-14 14:35:07 -0700
commit041d6d0be82bed7e0b87181dba5d10b8ab14afd9 (patch)
treeb7af53fa7ca104d30b9759c1f951439af7df3734 /fs/udf/file.c
parentaf8cb8aa38296ecc43aca7fae9e574db7b8ae0c4 (diff)
parentcbc8cc33529b0e0e55ae0ff077b8cb0b71d54c7a (diff)
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6: udf: Fix possible corruption when close races with write udf: Perform preallocation only for regular files udf: Remove wrong assignment in udf_symlink udf: Remove dead code
Diffstat (limited to 'fs/udf/file.c')
-rw-r--r--fs/udf/file.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/udf/file.c b/fs/udf/file.c
index 7464305382b5..b80cbd78833c 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -193,9 +193,11 @@ int udf_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
static int udf_release_file(struct inode *inode, struct file *filp)
{
if (filp->f_mode & FMODE_WRITE) {
+ mutex_lock(&inode->i_mutex);
lock_kernel();
udf_discard_prealloc(inode);
unlock_kernel();
+ mutex_unlock(&inode->i_mutex);
}
return 0;
}