[Btrfs-devel] path may be freed twice in btrfs_read_locked_inode.
Yan Zheng
yanzheng at 21cn.com
Mon Aug 20 00:36:29 PDT 2007
hello,
path is freed twice when encounter bad inode, once before goto
make_bad, once at label make_bad.
--- a/inode.c Fri Aug 10 16:22:09 2007 -0400
+++ b/inode.c Mon Aug 20 14:27:03 2007 +0800
@@ -142,8 +142,6 @@ void btrfs_read_locked_inode(struct inod
return;
make_bad:
- btrfs_release_path(root, path);
- btrfs_free_path(path);
mutex_unlock(&root->fs_info->fs_mutex);
make_bad_inode(inode);
}
The issue was found after I try to create cross subvolume hardlink
on the fs. I find "forbid cross subvolume renames and hardlinks" is
the TODO list and feel that it's easy to implement it (check
BTRFS_I(src)->root == BTRFS_I(dest dir)->root). what else need to
consider? thank you!
YZ
More information about the Btrfs-devel
mailing list