Btrfs: remove unused btrfs_bit_radix slab
[safe/jmp/linux-2.6] / fs / xfs / xfs_vnodeops.c
index 7394c7a..19cf90a 100644 (file)
@@ -1457,6 +1457,13 @@ xfs_create(
        error = xfs_trans_reserve(tp, resblks, log_res, 0,
                        XFS_TRANS_PERM_LOG_RES, log_count);
        if (error == ENOSPC) {
+               /* flush outstanding delalloc blocks and retry */
+               xfs_flush_inodes(dp);
+               error = xfs_trans_reserve(tp, resblks, XFS_CREATE_LOG_RES(mp), 0,
+                       XFS_TRANS_PERM_LOG_RES, XFS_CREATE_LOG_COUNT);
+       }
+       if (error == ENOSPC) {
+               /* No space at all so try a "no-allocation" reservation */
                resblks = 0;
                error = xfs_trans_reserve(tp, 0, log_res, 0,
                                XFS_TRANS_PERM_LOG_RES, log_count);