Hello,

The following two patch fix the leak  in two different way.  I prefer
the second one, but it doesn't show where the leak is.  Please choose
the one you like to apply.

Regards
YZ

---
diff -r 9bf00d0c038f inode.c
--- a/inode.c   Fri Oct 19 14:01:21 2007 -0400
+++ b/inode.c   Mon Oct 22 12:51:56 2007 +0800
@@ -615,6 +615,7 @@ static int btrfs_truncate_in_trans(struc
                        } else {
                                break;
                        }
+                       btrfs_release_path(root, path);
                        btrfs_set_key_type(&key, found_type);
                        continue;
                }

---
diff -r 9bf00d0c038f inode.c
diff -r 9bf00d0c038f inode.c
--- a/inode.c   Fri Oct 19 14:01:21 2007 -0400
+++ b/inode.c   Mon Oct 22 16:19:26 2007 +0800
@@ -567,7 +567,7 @@ static int btrfs_truncate_in_trans(struc
        key.type = (u8)-1;

        while(1) {
-               btrfs_init_path(path);
+               btrfs_release_path(root, path);
                fi = NULL;
                ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
                if (ret < 0) {
@@ -663,7 +663,6 @@ static int btrfs_truncate_in_trans(struc
                } else {
                        break;
                }
-               btrfs_release_path(root, path);
                if (found_extent) {
                        ret = btrfs_free_extent(trans, root, extent_start,
                                                extent_num_bytes, 0);

_______________________________________________
Btrfs-devel mailing list
[email protected]
http://oss.oracle.com/mailman/listinfo/btrfs-devel

Reply via email to