On 06/12/2016 12:53 PM, Eryu Guan wrote:
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.
 Definitely not a bug, but a pending enhancement.

If a user builds btrfs in kernel then he cannot replace
btrfs device properly?
 No. That's not true.

Or it's not totally clear to me why a test needs
to reload btrfs module.

 Sure.
 Test cases such 5/6 and 6/6 needs devices to be un-scanned.
 But as said, as of now we don't have such a feature and
 in a way _reload_btrfs_ko() will help to achieve the device
 un-scan.

 Further we have seen situations where previous test cases
 affects the next test case results. These are bugs,
 but are unintentional at that test case point of viwe, and
 is disturbingly deviating, so these helpers will help to
 start with a clean btrfs memory, so that test results are
 consistent to what is being tested.


This patch adds _require_btrfs_unloadable() and _reload_btrfs_ko()
to help with the same.

Signed-off-by: Anand Jain <anand.j...@oracle.com>
---
 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.

 ok. Will rename it.

Thanks, Anand


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 majord...@vger.kernel.org
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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to