[PATCH 11/12] fs: allow to mount on subdirectories

Sascha Hauer s.hauer at pengutronix.de
Wed Feb 15 03:22:44 EST 2012


Since get_mtab_entry_by_path() is a bit more flexible now
we no longer have to force the user to mount on the root
directory only. Instead, we can allow to mount on subdirectories
aswell. Nested mounts are still not possible though.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 fs/fs.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/fs/fs.c b/fs/fs.c
index 637a01f..3923ec6 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -778,13 +778,14 @@ int mount(const char *device, const char *fsname, const char *_path)
 
 	debug("mount: %s on %s type %s\n", device, path, fsname);
 
-	if (strchr(path + 1, '/')) {
-		printf("mounting allowed on first directory level only\n");
-		errno = -EBUSY;
-		goto err_free_path;
-	}
-
 	if (mtab_root) {
+		struct mtab_entry *entry;
+		entry = get_mtab_entry_by_path(path);
+		if (entry != mtab_root) {
+			printf("sorry, no nested mounts\n");
+			errno = -EBUSY;
+			goto err_free_path;
+		}
 		if (path_check_prereq(path, S_IFDIR))
 			goto err_free_path;
 	} else {
-- 
1.7.9




More information about the barebox mailing list