Btrfs: Add a per-inode csum mutex to avoid races creating csum items

Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index ece221c..8037792 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -267,13 +267,13 @@
 
 	/* FIXME...EIEIO, ENOSPC and more */
 	/* insert any holes we need to create */
-	if (isize < end_pos) {
+	if (isize < start_pos) {
 		u64 last_pos_in_file;
 		u64 hole_size;
 		u64 mask = root->sectorsize - 1;
 		last_pos_in_file = (isize + mask) & ~mask;
-		hole_size = (end_pos - last_pos_in_file + mask) & ~mask;
-		if (last_pos_in_file < end_pos) {
+		hole_size = (start_pos - last_pos_in_file + mask) & ~mask;
+		if (last_pos_in_file < start_pos) {
 			err = btrfs_drop_extents(trans, root, inode,
 						 last_pos_in_file,
 						 last_pos_in_file + hole_size,