On Thu, 7 Feb 2013 16:28:44 -0500, Josef Bacik wrote:
> I noticed we were getting lots of warnings with xfstest 83 because we have
> reservations outstanding.  This is because we moved the orphan add outside
> of the truncate, but we don't actually cleanup our reservation if something
> fails.  This fixes the problem and I no longer see warnings.  Thanks,
> 
> Signed-off-by: Josef Bacik <jba...@fusionio.com>
> ---
>  fs/btrfs/inode.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 73e9409..905297f 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -2538,6 +2538,8 @@ int btrfs_orphan_cleanup(struct btrfs_root *root)
>                               goto out;
>  
>                       ret = btrfs_truncate(inode);
> +                     if (ret)
> +                             btrfs_orphan_del(NULL, inode);
>               } else {
>                       nr_unlink++;
>               }

There are more warnings when running xfstest 083. With btrfs-next plus your two 
new patches ("[PATCH] Btrfs: steal from global reserve if we are cleaning up 
orphans V2" and "[PATCH] Btrfs: cleanup orphan reservation if truncate fails") 
I get a warning (see below) almost every time when I run xfstest 083.
If I apply only the 1st patch, it happens in 50% of the cases. And if I apply 
only the 2nd patch, the warning and the "Busy inodes" message happens in 50% of 
the cases as well.

With btrfs-next _without_ your new patches, the same thing happens in 3% of the 
cases. You made it happen more often with your new patches.


run xfstest 083
btrfs: disk space caching is enabled
Btrfs detected SSD devices, enabling SSD mode
------------[ cut here ]------------
WARNING: at fs/btrfs/disk-io.c:3227 free_fs_root+0x86/0x90 [btrfs]()
Hardware name: X8SIL
Modules linked in: btrfs raid1 mpt2sas scsi_transport_sas raid_class [last 
unloaded: btrfs]
Pid: 24225, comm: umount Tainted: G    B   W    3.7.0+ #27
Call Trace:
 [<ffffffff8108642a>] warn_slowpath_common+0x7a/0xb0
 [<ffffffff81086475>] warn_slowpath_null+0x15/0x20
 [<ffffffffa03403a6>] free_fs_root+0x86/0x90 [btrfs]
 [<ffffffffa03438eb>] btrfs_free_fs_root+0x7b/0x90 [btrfs]
 [<ffffffffa03439cf>] del_fs_roots+0xcf/0x110 [btrfs]
 [<ffffffffa033809f>] ? btrfs_free_block_groups+0x28f/0x360 [btrfs]
 [<ffffffffa0345240>] close_ctree+0x1d0/0x350 [btrfs]
 [<ffffffff811b1dc4>] ? evict_inodes+0x104/0x120
 [<ffffffffa031a284>] btrfs_put_super+0x14/0x20 [btrfs]
 [<ffffffff8119949c>] generic_shutdown_super+0x5c/0xe0
 [<ffffffff811995b1>] kill_anon_super+0x11/0x20
 [<ffffffffa031e3a5>] btrfs_kill_super+0x15/0x90 [btrfs]
 [<ffffffff8119a601>] ? deactivate_super+0x41/0x70
 [<ffffffff811999bd>] deactivate_locked_super+0x3d/0x70
 [<ffffffff8119a609>] deactivate_super+0x49/0x70
 [<ffffffff811b5b3c>] mntput_no_expire+0xfc/0x160
 [<ffffffff811b6af1>] sys_umount+0x71/0x3a0
 [<ffffffff81963fd2>] system_call_fastpath+0x16/0x1b
---[ end trace 0742f5dfe09cd270 ]---
VFS: Busy inodes after unmount of sds. Self-destruct in 5 seconds.  Have a nice 
day...


The VFS style "Have a nice day" is much more friendly than the Btrfs style 
"cleanup orphan" or "truncate orphan" BTW.


--
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