This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / fs / ext3 / file.c
index 50ba686..cb02116 100644 (file)
  */
 static int ext3_release_file (struct inode * inode, struct file * filp)
 {
-       if (filp->f_mode & FMODE_WRITE)
-               ext3_discard_prealloc (inode);
+       /* 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))
+               ext3_discard_reservation(inode);
        if (is_dx(inode) && filp->private_data)
                ext3_htree_free_dir_info(filp->private_data);