Merge branches 'release' and 'stats' into release
[sfrench/cifs-2.6.git] / fs / ext2 / file.c
index ab7961260c49d9071444d9e28cf6dd619b5058df..5f2fa9c36293d835722ec1371b820b07d5c5d9b5 100644 (file)
  */
 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;
 }
 
@@ -45,7 +48,7 @@ const struct file_operations ext2_file_operations = {
        .write          = do_sync_write,
        .aio_read       = generic_file_aio_read,
        .aio_write      = generic_file_aio_write,
-       .ioctl          = ext2_ioctl,
+       .unlocked_ioctl = ext2_ioctl,
 #ifdef CONFIG_COMPAT
        .compat_ioctl   = ext2_compat_ioctl,
 #endif
@@ -62,7 +65,7 @@ const struct file_operations ext2_xip_file_operations = {
        .llseek         = generic_file_llseek,
        .read           = xip_file_read,
        .write          = xip_file_write,
-       .ioctl          = ext2_ioctl,
+       .unlocked_ioctl = ext2_ioctl,
 #ifdef CONFIG_COMPAT
        .compat_ioctl   = ext2_compat_ioctl,
 #endif