Coly Li
2008-Jul-31 13:40 UTC
[Ocfs2-devel] [PATCH] ocfs2-tools: add error message to mount.ocfs2 when mount point is invalid.
Adds error messages to mount.ocfs2 when mount point is invalid in three
conditions:
1) mount point does not exist.
2) mount point is a symbolic link.
3) mount point is not a directory.
Adding these error messages can help ocfs2console provides more helpful feedback
information to end
use. Similar information can be found when mounting ext[234] file systems.
Patch is generated against upstream ocfs2-tools.
Signed-off-by: Coly Li <coyli at suse.de>
Cc: Joel Becker <Joel.Becker at oracle.com>
Cc: Tao Ma <tao.ma at oracle.com>
Cc: Tiger Yang <tiger.yang at oracle.com>
---
diff --git a/mount.ocfs2/mount.ocfs2.c b/mount.ocfs2/mount.ocfs2.c
index a97b4cb..eb8e336 100644
--- a/mount.ocfs2/mount.ocfs2.c
+++ b/mount.ocfs2/mount.ocfs2.c
@@ -382,9 +382,21 @@ int main(int argc, char **argv)
o2cb_complete_group_join(&cluster, &desc, errno);
}
block_signals (SIG_UNBLOCK);
- com_err(progname, ret, "while mounting %s on %s. "
- "Check 'dmesg' for more information on this error.",
- mo.dev, mo.dir);
+
+ /* complain mount failure */
+ if (lstat(mo.dir, &statbuf))
+ com_err(progname, 0, "mount point %s does not "
+ "exist", mo.dir);
+ else if (stat(mo.dir, &statbuf))
+ com_err(progname, 0, "mount point %s is a "
+ "symbolic link to nowhere", mo.dir);
+ else if (stat(mo.dir, &statbuf) || !S_ISDIR(statbuf.st_mode))
+ com_err(progname, 0, "mount point %s is not "
+ "a directory", mo.dir);
+ else
+ com_err(progname, ret, "while mounting %s on %s. "
+ "Check 'dmesg' for more information on this "
+ "error.", mo.dev, mo.dir);
goto bail;
}
if (hb_started) {
--
Coly Li
SuSE PRC Labs
Sunil Mushran
2008-Jul-31 17:44 UTC
[Ocfs2-devel] [PATCH] ocfs2-tools: add error message to mount.ocfs2 when mount point is invalid.
Maybe change "symbolic link to nowhere" to "broken symbolic link". Looks good otherwise. Coly Li wrote:> Adds error messages to mount.ocfs2 when mount point is invalid in three conditions: > 1) mount point does not exist. > 2) mount point is a symbolic link. > 3) mount point is not a directory. > Adding these error messages can help ocfs2console provides more helpful feedback information to end > use. Similar information can be found when mounting ext[234] file systems. > > Patch is generated against upstream ocfs2-tools. > > Signed-off-by: Coly Li <coyli at suse.de> > Cc: Joel Becker <Joel.Becker at oracle.com> > Cc: Tao Ma <tao.ma at oracle.com> > Cc: Tiger Yang <tiger.yang at oracle.com> > --- > diff --git a/mount.ocfs2/mount.ocfs2.c b/mount.ocfs2/mount.ocfs2.c > index a97b4cb..eb8e336 100644 > --- a/mount.ocfs2/mount.ocfs2.c > +++ b/mount.ocfs2/mount.ocfs2.c > @@ -382,9 +382,21 @@ int main(int argc, char **argv) > o2cb_complete_group_join(&cluster, &desc, errno); > } > block_signals (SIG_UNBLOCK); > - com_err(progname, ret, "while mounting %s on %s. " > - "Check 'dmesg' for more information on this error.", > - mo.dev, mo.dir); > + > + /* complain mount failure */ > + if (lstat(mo.dir, &statbuf)) > + com_err(progname, 0, "mount point %s does not " > + "exist", mo.dir); > + else if (stat(mo.dir, &statbuf)) > + com_err(progname, 0, "mount point %s is a " > + "symbolic link to nowhere", mo.dir); > + else if (stat(mo.dir, &statbuf) || !S_ISDIR(statbuf.st_mode)) > + com_err(progname, 0, "mount point %s is not " > + "a directory", mo.dir); > + else > + com_err(progname, ret, "while mounting %s on %s. " > + "Check 'dmesg' for more information on this " > + "error.", mo.dev, mo.dir); > goto bail; > } > if (hb_started) { > >
Joel Becker
2008-Jul-31 20:00 UTC
[Ocfs2-devel] [PATCH] ocfs2-tools: add error message to mount.ocfs2 when mount point is invalid.
On Thu, Jul 31, 2008 at 09:40:21PM +0800, Coly Li wrote:> diff --git a/mount.ocfs2/mount.ocfs2.c b/mount.ocfs2/mount.ocfs2.c > index a97b4cb..eb8e336 100644 > --- a/mount.ocfs2/mount.ocfs2.c > +++ b/mount.ocfs2/mount.ocfs2.c > @@ -382,9 +382,21 @@ int main(int argc, char **argv) > o2cb_complete_group_join(&cluster, &desc, errno); > } > block_signals (SIG_UNBLOCK); > - com_err(progname, ret, "while mounting %s on %s. " > - "Check 'dmesg' for more information on this error.", > - mo.dev, mo.dir); > + > + /* complain mount failure */ > + if (lstat(mo.dir, &statbuf)) > + com_err(progname, 0, "mount point %s does not " > + "exist", mo.dir); > + else if (stat(mo.dir, &statbuf)) > + com_err(progname, 0, "mount point %s is a " > + "symbolic link to nowhere", mo.dir); > + else if (stat(mo.dir, &statbuf) || !S_ISDIR(statbuf.st_mode))+ else if (!S_ISDIR(statbuf.st_mode)) You successfully called stat in the previous "else if" clause.> + com_err(progname, 0, "mount point %s is not " > + "a directory", mo.dir); > + else > + com_err(progname, ret, "while mounting %s on %s. " > + "Check 'dmesg' for more information on this " > + "error.", mo.dev, mo.dir);Also, I agree with sunil's "broken symbolic link" text. Joel -- "I have never let my schooling interfere with my education." - Mark Twain Joel Becker Principal Software Developer Oracle E-mail: joel.becker at oracle.com Phone: (650) 506-8127