Btrfs: release space on error in page_mkwrite
authorJosef Bacik <josef@redhat.com>
Fri, 13 Jan 2012 00:10:12 +0000 (19:10 -0500)
committerChris Mason <chris.mason@oracle.com>
Mon, 16 Jan 2012 20:28:54 +0000 (15:28 -0500)
If updating the inode gave us an ENOSPC we were just returning in page_mkwrite,
which is a problem since we make our reservation right before trying to update
the inode, so fix the out label so that we actually free our reservation.
Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c

index 946a7f1b32959aa42ad3ffbdb0d7bc094443a060..85fd86ea98308c3322ead1267b600433607946df 100644 (file)
@@ -6488,8 +6488,8 @@ out_unlock:
        if (!ret)
                return VM_FAULT_LOCKED;
        unlock_page(page);
-       btrfs_delalloc_release_space(inode, PAGE_CACHE_SIZE);
 out:
+       btrfs_delalloc_release_space(inode, PAGE_CACHE_SIZE);
        return ret;
 }