]> err.no Git - linux-2.6/blobdiff - fs/ext3/file.c
[PATCH] do_notify_parent_cldstop() cleanup
[linux-2.6] / fs / ext3 / file.c
index 5ad8cf0292df5bd53a18e480b5ce282935905d7d..98e78345ead930a7705f1b7202a315263863bdeb 100644 (file)
@@ -36,7 +36,11 @@ static int ext3_release_file (struct inode * inode, struct file * filp)
        /* if we are the last writer on the inode, drop the block reservation */
        if ((filp->f_mode & FMODE_WRITE) &&
                        (atomic_read(&inode->i_writecount) == 1))
+       {
+               down(&EXT3_I(inode)->truncate_sem);
                ext3_discard_reservation(inode);
+               up(&EXT3_I(inode)->truncate_sem);
+       }
        if (is_dx(inode) && filp->private_data)
                ext3_htree_free_dir_info(filp->private_data);