On Tue, May 17, 2016 at 10:32:08PM +0800, Anand Jain wrote:
> We need btrfs to be a module so that it can unloaded and reloaded,
> so that we can clean up the btrfs internal in memory device list.
It looks like a bug to me if btrfs needs to reload module to clean up
the device list. If a user builds btrfs in kernel then he cannot replace
btrfs device properly? Or it's not totally clear to me why a test needs
to reload btrfs module.
>
> This patch adds _require_btrfs_unloadable() and _reload_btrfs_ko()
> to help with the same.
>
> Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>
> ---
> common/rc | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/common/rc b/common/rc
> index f2b39ddbee0c..a9391b4cbf57 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -1403,6 +1403,18 @@ _supported_os()
> _notrun "not suitable for this OS: $HOSTOS"
> }
>
> +_require_btrfs_unloadable()
The name seems misleading, the name indicates that it requires btrfs to
be unloadable, but in the code it _notrun if btrfs is unloadable.
Thanks,
Eryu
> +{
> + modprobe -r btrfs || _notrun "btrfs unloadable"
> + modprobe btrfs || _notrun "Can't load btrfs"
> +}
> +
> +_reload_btrfs_ko()
> +{
> + modprobe -r btrfs || _fail "btrfs unload failed"
> + modprobe btrfs || _fail "btrfs load failed"
> +}
> +
> # this test needs a scratch partition - check we're ok & unmount it
> # No post-test check of the device is required. e.g. the test intentionally
> # finishes the test with the filesystem in a corrupt state
> --
> 2.7.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html