diff options
Diffstat (limited to 'fs/ext2/file.c')
-rw-r--r-- | fs/ext2/file.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/ext2/file.c b/fs/ext2/file.c index ab7961260c4..c051798459a 100644 --- a/fs/ext2/file.c +++ b/fs/ext2/file.c @@ -30,8 +30,11 @@ */ static int ext2_release_file (struct inode * inode, struct file * filp) { - if (filp->f_mode & FMODE_WRITE) - ext2_discard_prealloc (inode); + if (filp->f_mode & FMODE_WRITE) { + mutex_lock(&EXT2_I(inode)->truncate_mutex); + ext2_discard_reservation(inode); + mutex_unlock(&EXT2_I(inode)->truncate_mutex); + } return 0; } |