btrfs: add tracing for failed reservations
authorJeff Mahoney <jeffm@suse.com>
Wed, 16 Oct 2013 20:27:01 +0000 (16:27 -0400)
committerChris Mason <chris.mason@fusionio.com>
Tue, 12 Nov 2013 03:03:37 +0000 (22:03 -0500)
When debugging ENOSPC issues, it's nice to be able to see which
reservations failed as well as the ones which succeeded.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/extent-tree.c

index 4062a65f9fb7ef7fbb878cdce61d92d209865cd2..a807acc9a63eb7f0928c2ed2f79fa5e1aef6fed1 100644 (file)
@@ -3684,6 +3684,9 @@ commit_trans:
                        goto again;
                }
 
+               trace_btrfs_space_reservation(root->fs_info,
+                                             "space_info:enospc",
+                                             data_sinfo->flags, bytes, 1);
                return -ENOSPC;
        }
        data_sinfo->bytes_may_use += bytes;
@@ -4335,6 +4338,10 @@ out:
                    !block_rsv_use_bytes(global_rsv, orig_bytes))
                        ret = 0;
        }
+       if (ret == -ENOSPC)
+               trace_btrfs_space_reservation(root->fs_info,
+                                             "space_info:enospc",
+                                             space_info->flags, orig_bytes, 1);
        if (flushing) {
                spin_lock(&space_info->lock);
                space_info->flush = 0;