linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Btrfs: release both paths before logging dir/changed extents
@ 2013-07-22 16:56 Josef Bacik
  2013-07-23  2:03 ` Miao Xie
  0 siblings, 1 reply; 2+ messages in thread
From: Josef Bacik @ 2013-07-22 16:56 UTC (permalink / raw)
  To: linux-btrfs

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 <jbacik@fusionio.com>
---
 fs/btrfs/tree-log.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 2c67914..ff60d89 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -3746,8 +3746,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;
@@ -3764,8 +3765,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.7.7.6


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] Btrfs: release both paths before logging dir/changed extents
  2013-07-22 16:56 [PATCH] Btrfs: release both paths before logging dir/changed extents Josef Bacik
@ 2013-07-23  2:03 ` Miao Xie
  0 siblings, 0 replies; 2+ messages in thread
From: Miao Xie @ 2013-07-23  2:03 UTC (permalink / raw)
  To: Josef Bacik; +Cc: linux-btrfs

On mon, 22 Jul 2013 12:56:00 -0400, Josef Bacik wrote:
> 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 <jbacik@fusionio.com>

Reviewed-by: Miao Xie <miaox@cn.fujitsu.com>

> ---
>  fs/btrfs/tree-log.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
> index 2c67914..ff60d89 100644
> --- a/fs/btrfs/tree-log.c
> +++ b/fs/btrfs/tree-log.c
> @@ -3746,8 +3746,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;
> @@ -3764,8 +3765,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;
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-07-23  2:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-22 16:56 [PATCH] Btrfs: release both paths before logging dir/changed extents Josef Bacik
2013-07-23  2:03 ` Miao Xie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).