On Wed, Oct 19, 2016 at 12:57:19PM +0800, Wang Xiaoguang wrote:
> hi,
> 
> On 10/18/2016 06:32 PM, Holger Hoffstätte wrote:
> > On Tue, 18 Oct 2016 15:56:13 +0800, Wang Xiaoguang wrote:
> >
> >> In btrfs_truncate_inode_items()->btrfs_async_run_delayed_refs(), we
> >> swap the arg2 and arg3 wrongly, fix this.
> >>
> >> Signed-off-by: Wang Xiaoguang <wangxg.f...@cn.fujitsu.com>
> >> ---
> >>   fs/btrfs/inode.c | 4 ++--
> >>   1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> >> index 2b790bd..2f1372b 100644
> >> --- a/fs/btrfs/inode.c
> >> +++ b/fs/btrfs/inode.c
> >> @@ -4605,8 +4605,8 @@ int btrfs_truncate_inode_items(struct 
> >> btrfs_trans_handle *trans,
> >>                    BUG_ON(ret);
> >>                    if (btrfs_should_throttle_delayed_refs(trans, root))
> >>                            btrfs_async_run_delayed_refs(root,
> >> -                                                       trans->transid,
> >> -                                  trans->delayed_ref_updates * 2, 0);
> >> +                                  trans->delayed_ref_updates * 2,
> >> +                                  trans->transid, 0);
> >>                    if (be_nice) {
> >>                            if (truncate_space_check(trans, root,
> >>                                                     extent_num_bytes)) {
> > Reviewed-by: Holger Hoffstätte <hol...@applied-asynchrony.com>
> >
> > Passing the wrong transid..why did this ever work?
> Indeed this bug just impacts asynchronous delayed refs handle when we 
> truncate
> inodes.  In delayed_ref_async_start(), there is such codes:
> 
>      trans = btrfs_join_transaction(async->root);
>      if (trans->transid > async->transid)
>          goto end;
>      ret = btrfs_run_delayed_refs(trans, async->root, async->count);
> 
>  From this codes, we can see that this just influence whether can we handle
> delayed refs or the number of delayed refs to handle, this may impact
> performance, but will not result in missing delayed refs, all delayed 
> refs will
> be handled in btrfs_commit_transaction().

You should put this kind of information to the changelog itself, now
added.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to