diff options
-rw-r--r-- | fs_mgr/fs_mgr.c | 8 | ||||
-rw-r--r-- | fs_mgr/include/fs_mgr.h | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c index 3f94af5..91e6c33 100644 --- a/fs_mgr/fs_mgr.c +++ b/fs_mgr/fs_mgr.c @@ -433,7 +433,7 @@ int fs_mgr_do_mount(struct fstab *fstab, char *n_name, char *n_blk_device, char *tmp_mount_point) { int i = 0; - int ret = -1; + int ret = FS_MGR_DOMNT_FAILED; int mount_errors = 0; int first_mount_errno = 0; char *m; @@ -493,7 +493,11 @@ int fs_mgr_do_mount(struct fstab *fstab, char *n_name, char *n_blk_device, if (mount_errors) { ERROR("Cannot mount filesystem on %s at %s. error: %s\n", n_blk_device, m, strerror(first_mount_errno)); - ret = -1; + if (first_mount_errno == EBUSY) { + ret = FS_MGR_DOMNT_BUSY; + } else { + ret = FS_MGR_DOMNT_FAILED; + } } else { /* We didn't find a match, say so and return an error */ ERROR("Cannot find mount point %s in fstab\n", fstab->recs[i].mount_point); diff --git a/fs_mgr/include/fs_mgr.h b/fs_mgr/include/fs_mgr.h index d9c58d4..0c7eb20 100644 --- a/fs_mgr/include/fs_mgr.h +++ b/fs_mgr/include/fs_mgr.h @@ -59,6 +59,9 @@ void fs_mgr_free_fstab(struct fstab *fstab); #define FS_MGR_MNTALL_DEV_MIGHT_BE_ENCRYPTED 1 #define FS_MGR_MNTALL_DEV_NOT_ENCRYPTED 0 int fs_mgr_mount_all(struct fstab *fstab); + +#define FS_MGR_DOMNT_FAILED -1 +#define FS_MGR_DOMNT_BUSY -2 int fs_mgr_do_mount(struct fstab *fstab, char *n_name, char *n_blk_device, char *tmp_mount_point); int fs_mgr_do_tmpfs_mount(char *n_name); |