diff options
| author | Daniel Rosenberg <drosen@google.com> | 2016-04-12 21:08:41 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2016-04-12 21:08:41 +0000 |
| commit | 3b51acc3f2f8abcfa57a98e725cf5b252a26c010 (patch) | |
| tree | b305aa8b7c05b117750299d3d3479d81aca34d52 | |
| parent | ac0c7f13b0ffc40fefa6a91ccc9d53e3b9c28d35 (diff) | |
| parent | 98ed48534bc18a65b2642ebe9702fbf8e911ff85 (diff) | |
Add nofail fstab option
am: d38e3c5
* commit 'd38e3c522c162972bb348c0258e3f9e975191c4f':
Add nofail fstab option
Change-Id: I3cdf284fe188c4f3874b91d8b77d17157160d68d
| -rw-r--r-- | fs_mgr/fs_mgr.c | 17 | ||||
| -rw-r--r-- | fs_mgr/fs_mgr_fstab.c | 6 | ||||
| -rw-r--r-- | fs_mgr/fs_mgr_priv.h | 1 | ||||
| -rw-r--r-- | fs_mgr/include/fs_mgr.h | 1 |
4 files changed, 20 insertions, 5 deletions
diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c index 15d44eff54..8e59a33796 100644 --- a/fs_mgr/fs_mgr.c +++ b/fs_mgr/fs_mgr.c @@ -626,11 +626,18 @@ int fs_mgr_mount_all(struct fstab *fstab) } encryptable = FS_MGR_MNTALL_DEV_MIGHT_BE_ENCRYPTED; } else { - ERROR("Failed to mount an un-encryptable or wiped partition on" - "%s at %s options: %s error: %s\n", - fstab->recs[attempted_idx].blk_device, fstab->recs[attempted_idx].mount_point, - fstab->recs[attempted_idx].fs_options, strerror(mount_errno)); - ++error_count; + if (fs_mgr_is_nofail(&fstab->recs[attempted_idx])) { + ERROR("Ignoring failure to mount an un-encryptable or wiped partition on" + "%s at %s options: %s error: %s\n", + fstab->recs[attempted_idx].blk_device, fstab->recs[attempted_idx].mount_point, + fstab->recs[attempted_idx].fs_options, strerror(mount_errno)); + } else { + ERROR("Failed to mount an un-encryptable or wiped partition on" + "%s at %s options: %s error: %s\n", + fstab->recs[attempted_idx].blk_device, fstab->recs[attempted_idx].mount_point, + fstab->recs[attempted_idx].fs_options, strerror(mount_errno)); + ++error_count; + } continue; } } diff --git a/fs_mgr/fs_mgr_fstab.c b/fs_mgr/fs_mgr_fstab.c index f24af1f1d5..cc774f0338 100644 --- a/fs_mgr/fs_mgr_fstab.c +++ b/fs_mgr/fs_mgr_fstab.c @@ -74,6 +74,7 @@ static struct flag_list fs_mgr_flags[] = { { "noemulatedsd", MF_NOEMULATEDSD }, { "notrim", MF_NOTRIM }, { "formattable", MF_FORMATTABLE }, + { "nofail", MF_NOFAIL }, { "defaults", 0 }, { 0, 0 }, }; @@ -480,3 +481,8 @@ int fs_mgr_is_formattable(struct fstab_rec *fstab) { return fstab->fs_mgr_flags & (MF_FORMATTABLE); } + +int fs_mgr_is_nofail(struct fstab_rec *fstab) +{ + return fstab->fs_mgr_flags & MF_NOFAIL; +} diff --git a/fs_mgr/fs_mgr_priv.h b/fs_mgr/fs_mgr_priv.h index 682fd11017..ed5594c2cc 100644 --- a/fs_mgr/fs_mgr_priv.h +++ b/fs_mgr/fs_mgr_priv.h @@ -79,6 +79,7 @@ #define MF_NOTRIM 0x1000 #define MF_FILEENCRYPTION 0x2000 #define MF_FORMATTABLE 0x4000 +#define MF_NOFAIL 0x40000 #define DM_BUF_SIZE 4096 diff --git a/fs_mgr/include/fs_mgr.h b/fs_mgr/include/fs_mgr.h index 27fccf72e7..c5e1f32866 100644 --- a/fs_mgr/include/fs_mgr.h +++ b/fs_mgr/include/fs_mgr.h @@ -105,6 +105,7 @@ int fs_mgr_is_file_encrypted(const struct fstab_rec *fstab); int fs_mgr_is_noemulatedsd(const struct fstab_rec *fstab); int fs_mgr_is_notrim(struct fstab_rec *fstab); int fs_mgr_is_formattable(struct fstab_rec *fstab); +int fs_mgr_is_nofail(struct fstab_rec *fstab); int fs_mgr_swapon_all(struct fstab *fstab); int fs_mgr_do_format(struct fstab_rec *fstab); |
