[PATCH 112/133] Btrfs: release both paths before logging dir/changed extents

2013-08-16 Thread Kamal Mostafa
3.8.13.7 -stable review patch.  If anyone has any objections, please let me 
know.

--

From: Josef Bacik 

commit f3b15ccdbb9a79781578249a63318805e55a6c34 upstream.

The ceph guys tripped over this bug where we were still holding onto the
original path that we used to copy the inode with when logging.  This is based
on Chris's fix which was reported to fix the problem.  We need to drop the paths
in two cases anyway so just move the drop up so that we don't have duplicate
code.  Thanks,

Signed-off-by: Josef Bacik 
Signed-off-by: Chris Mason 
Signed-off-by: Kamal Mostafa 
---
 fs/btrfs/tree-log.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 8a00e2f..372a7d4 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -3684,8 +3684,9 @@ next_slot:
}
 
 log_extents:
+   btrfs_release_path(path);
+   btrfs_release_path(dst_path);
if (fast_search) {
-   btrfs_release_path(dst_path);
ret = btrfs_log_changed_extents(trans, root, inode, dst_path);
if (ret) {
err = ret;
@@ -3702,8 +3703,6 @@ log_extents:
}
 
if (inode_only == LOG_INODE_ALL && S_ISDIR(inode->i_mode)) {
-   btrfs_release_path(path);
-   btrfs_release_path(dst_path);
ret = log_directory_changes(trans, root, inode, path, dst_path);
if (ret) {
err = ret;
-- 
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 112/133] Btrfs: release both paths before logging dir/changed extents

2013-08-16 Thread Kamal Mostafa
3.8.13.7 -stable review patch.  If anyone has any objections, please let me 
know.

--

From: Josef Bacik jba...@fusionio.com

commit f3b15ccdbb9a79781578249a63318805e55a6c34 upstream.

The ceph guys tripped over this bug where we were still holding onto the
original path that we used to copy the inode with when logging.  This is based
on Chris's fix which was reported to fix the problem.  We need to drop the paths
in two cases anyway so just move the drop up so that we don't have duplicate
code.  Thanks,

Signed-off-by: Josef Bacik jba...@fusionio.com
Signed-off-by: Chris Mason chris.ma...@fusionio.com
Signed-off-by: Kamal Mostafa ka...@canonical.com
---
 fs/btrfs/tree-log.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 8a00e2f..372a7d4 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -3684,8 +3684,9 @@ next_slot:
}
 
 log_extents:
+   btrfs_release_path(path);
+   btrfs_release_path(dst_path);
if (fast_search) {
-   btrfs_release_path(dst_path);
ret = btrfs_log_changed_extents(trans, root, inode, dst_path);
if (ret) {
err = ret;
@@ -3702,8 +3703,6 @@ log_extents:
}
 
if (inode_only == LOG_INODE_ALL  S_ISDIR(inode-i_mode)) {
-   btrfs_release_path(path);
-   btrfs_release_path(dst_path);
ret = log_directory_changes(trans, root, inode, path, dst_path);
if (ret) {
err = ret;
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/