linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <levinsasha928@gmail.com>
To: torvalds@linux-foundation.org
Cc: chuck.lever@oracle.com, linux@razik.name,
	Trond.Myklebust@netapp.com, linux-nfs@vger.kernel.org,
	linux-kernel@vger.kernel.org, mingo@elte.hu,
	Sasha Levin <levinsasha928@gmail.com>
Subject: [PATCH] init: don't try mounting device as nfs root unless type fully matches
Date: Sat,  5 May 2012 17:06:35 +0200	[thread overview]
Message-ID: <1336230395-5215-1-git-send-email-levinsasha928@gmail.com> (raw)

Currently, we'll try mounting any device who's major device number is
UNNAMED_MAJOR as NFS root. This would happen for non-NFS devices as well (such
as 9p devices) but it wouldn't cause any issues since mounting the device
as NFS would fail quickly and the code proceeded to doing the proper mount:

       [  101.522716] VFS: Unable to mount root fs via NFS, trying floppy.
       [  101.534499] VFS: Mounted root (9p filesystem) on device 0:18.

Commit 6829a048 ("NFS: Retry mounting NFSROOT") has introduced retries when
mounting NFS root, which means that now we don't immediately fail and instead
it takes an additional 90+ seconds until we stop retrying, which has revealed
the issue this patch fixes.

This meant that it would take an additional 90 seconds to boot when we're not
using a device type which gets detected in order before NFS.

This patch modifies the NFS type check to require device type to be
'Root_NFS' instead of requiring the device to have an UNNAMED_MAJOR major.
This makes boot process cleaner since we now won't go through the NFS mounting
code at all when the device isn't an NFS root ("/dev/nfs").

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
---
 init/do_mounts.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/init/do_mounts.c b/init/do_mounts.c
index 8dfa0de..d3f0aee 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -482,7 +482,7 @@ void __init change_floppy(char *fmt, ...)
 void __init mount_root(void)
 {
 #ifdef CONFIG_ROOT_NFS
-	if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) {
+	if (ROOT_DEV == Root_NFS) {
 		if (mount_nfs_root())
 			return;
 
-- 
1.7.8.5


             reply	other threads:[~2012-05-05 15:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-05 15:06 Sasha Levin [this message]
2012-05-07  8:54 ` [PATCH] init: don't try mounting device as nfs root unless type fully matches Ingo Molnar
2012-05-07  8:56   ` Ingo Molnar
2012-05-07  9:00   ` Sasha Levin
2012-05-07  8:58 ` Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1336230395-5215-1-git-send-email-levinsasha928@gmail.com \
    --to=levinsasha928@gmail.com \
    --cc=Trond.Myklebust@netapp.com \
    --cc=chuck.lever@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux@razik.name \
    --cc=mingo@elte.hu \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).