From: Jan Kara Date: Thu, 6 Aug 2009 22:27:27 +0000 (+0200) Subject: udf: Fix possible corruption when close races with write X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=cbc8cc33529b0e0e55ae0ff077b8cb0b71d54c7a;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git udf: Fix possible corruption when close races with write When we close a file, we remove preallocated blocks from it. But this truncation was not protected by i_mutex and thus it could have raced with a write through a different fd and cause crashes or even filesystem corruption. Signed-off-by: Jan Kara --- 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; }