[Ocfs2-tools-devel] [PATCH 16/18] tunefs.ocfs2: Progress while enabling or disabling the local feature.
Joel Becker
joel.becker at oracle.com
Mon Jan 5 18:33:52 PST 2009
Display progress while switching between local and clustered
configuration.
Signed-off-by: Joel Becker <joel.becker at oracle.com>
---
tunefs.ocfs2/feature_local.c | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/tunefs.ocfs2/feature_local.c b/tunefs.ocfs2/feature_local.c
index 711bc3a..dd71d3c 100644
--- a/tunefs.ocfs2/feature_local.c
+++ b/tunefs.ocfs2/feature_local.c
@@ -31,6 +31,7 @@ static int disable_local(ocfs2_filesys *fs, int flags)
errcode_t ret = 0;
struct ocfs2_super_block *sb = OCFS2_RAW_SB(fs->fs_super);
struct o2cb_cluster_desc desc;
+ struct tools_progress *prog = NULL;
if (!ocfs2_mount_local(fs)) {
verbosef(VL_APP,
@@ -45,6 +46,13 @@ static int disable_local(ocfs2_filesys *fs, int flags)
fs->fs_devname))
goto out;
+ prog = tools_progress_start("Disable local", "nolocal", 3);
+ if (!prog) {
+ ret = TUNEFS_ET_NO_MEMORY;
+ tcom_err(ret, "while initializing the progress display");
+ goto out;
+ }
+
/*
* Since it was a local device, tunefs_open() will not
* have connected to o2cb.
@@ -54,6 +62,7 @@ static int disable_local(ocfs2_filesys *fs, int flags)
tcom_err(ret, "while connecting to the cluster stack");
goto out;
}
+ tools_progress_step(prog, 1);
ret = o2cb_running_cluster_desc(&desc);
if (ret) {
tcom_err(ret, "while trying to determine the running cluster");
@@ -66,6 +75,7 @@ static int disable_local(ocfs2_filesys *fs, int flags)
desc.c_stack, desc.c_cluster);
else
verbosef(VL_APP, "Cluster stack: classic o2cb\n");
+ tools_progress_step(prog, 1);
sb->s_feature_incompat &=
~OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT;
@@ -76,7 +86,10 @@ static int disable_local(ocfs2_filesys *fs, int flags)
if (ret)
tcom_err(ret, "while writing setting the cluster descriptor");
+ tools_progress_step(prog, 1);
out:
+ if (prog)
+ tools_progress_stop(prog);
if (ret)
errorf("Unable to disable the local mount feature on "
"device \"%s\"\n",
@@ -88,6 +101,7 @@ static int enable_local(ocfs2_filesys *fs, int flags)
{
errcode_t ret = 0;
struct ocfs2_super_block *sb = OCFS2_RAW_SB(fs->fs_super);
+ struct tools_progress *prog;
if (ocfs2_mount_local(fs)) {
verbosef(VL_APP,
@@ -102,6 +116,13 @@ static int enable_local(ocfs2_filesys *fs, int flags)
fs->fs_devname))
goto out;
+ prog = tools_progress_start("Enable local", "local", 1);
+ if (!prog) {
+ ret = TUNEFS_ET_NO_MEMORY;
+ tcom_err(ret, "while initializing the progress display");
+ goto out;
+ }
+
sb->s_feature_incompat |=
OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT;
sb->s_feature_incompat &=
@@ -116,6 +137,8 @@ static int enable_local(ocfs2_filesys *fs, int flags)
"enable the local mount feature on device \"%s\"",
fs->fs_devname);
+ tools_progress_step(prog, 1);
+ tools_progress_stop(prog);
out:
return ret;
}
--
1.5.6.5
More information about the Ocfs2-tools-devel
mailing list