
From: Jeff Dike <jdike@addtoit.com>

This cleans up the error handling and fixes a crash if a hostfs mount fails.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 fs/hostfs/hostfs_kern.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff -puN fs/hostfs/hostfs_kern.c~uml-hostfs-failed-mount-handling fs/hostfs/hostfs_kern.c
--- 25/fs/hostfs/hostfs_kern.c~uml-hostfs-failed-mount-handling	Mon May  2 17:15:41 2005
+++ 25-akpm/fs/hostfs/hostfs_kern.c	Mon May  2 17:15:41 2005
@@ -991,13 +991,17 @@ static int hostfs_fill_sb_common(struct 
 		goto out_put;
 
 	err = read_inode(root_inode);
-	if(err)
-		goto out_put;
+	if(err){
+                /* No iput in this case because the dput does that for us */
+                dput(sb->s_root);
+                sb->s_root = NULL;
+		goto out_free;
+        }
 
 	return(0);
 
  out_put:
-	iput(root_inode);
+        iput(root_inode);
  out_free:
 	kfree(name);
  out:
_
