From 071f28ae0e6dc55e13303282b185c76b23ff1c3a Mon Sep 17 00:00:00 2001 From: William Roberts Date: Tue, 14 Jan 2014 14:33:44 -0500 Subject: [PATCH] fs_mgr: increase verboseness on mount errors While debugging a mount error, the dmesg output was less than ideal. The error would be declared but why the mount failed, and what options were passed was not present. This patch ensures that the mount options and underlying errno are printed. Change-Id: I2b3a2c113149df878c0a8a10ef86fd9e4f909658 --- fs_mgr/fs_mgr.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c index 6d9d20c55..24ce806df 100644 --- a/fs_mgr/fs_mgr.c +++ b/fs_mgr/fs_mgr.c @@ -517,6 +517,7 @@ int fs_mgr_mount_all(struct fstab *fstab) int encrypted = 0; int ret = -1; int mret; + int mount_errno; if (!fstab) { return ret; @@ -560,6 +561,9 @@ int fs_mgr_mount_all(struct fstab *fstab) continue; } + /* back up errno as partition_wipe clobbers the value */ + mount_errno = errno; + /* mount(2) returned an error, check if it's encrypted and deal with it */ if ((fstab->recs[i].fs_mgr_flags & MF_CRYPT) && !partition_wiped(fstab->recs[i].blk_device)) { @@ -568,14 +572,16 @@ int fs_mgr_mount_all(struct fstab *fstab) */ if (mount("tmpfs", fstab->recs[i].mount_point, "tmpfs", MS_NOATIME | MS_NOSUID | MS_NODEV, CRYPTO_TMPFS_OPTIONS) < 0) { - ERROR("Cannot mount tmpfs filesystem for encrypted fs at %s\n", - fstab->recs[i].mount_point); + ERROR("Cannot mount tmpfs filesystem for encrypted fs at %s error: %s\n", + fstab->recs[i].mount_point, strerror(errno)); goto out; } encrypted = 1; } else { - ERROR("Cannot mount filesystem on %s at %s\n", - fstab->recs[i].blk_device, fstab->recs[i].mount_point); + ERROR("Failed to mount an un-encryptable or wiped partition on" + "%s at %s options: %s error: %s\n", + fstab->recs[i].blk_device, fstab->recs[i].mount_point, + fstab->recs[i].fs_options, strerror(mount_errno)); goto out; } } @@ -644,8 +650,8 @@ int fs_mgr_do_mount(struct fstab *fstab, char *n_name, char *n_blk_device, } if (__mount(n_blk_device, m, fstab->recs[i].fs_type, fstab->recs[i].flags, fstab->recs[i].fs_options)) { - ERROR("Cannot mount filesystem on %s at %s\n", - n_blk_device, m); + ERROR("Cannot mount filesystem on %s at %s options: %s error: %s\n", + n_blk_device, m, fstab->recs[i].fs_options, strerror(errno)); goto out; } else { ret = 0;