diff options
author | Elliott Hughes <enh@google.com> | 2015-01-23 00:34:07 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-01-23 00:34:08 +0000 |
commit | 4083ed7dff6e1dd8e20bec04f9451061951394f5 (patch) | |
tree | c4277e9a9eba140dae612b9a6c0c2126d396175c /fs_mgr | |
parent | f9e2339553f70aebdd170e96ab9332b28c3851b4 (diff) | |
parent | 572226c25cce1890880813c051feb86e51eddad5 (diff) | |
download | system_core-4083ed7dff6e1dd8e20bec04f9451061951394f5.zip system_core-4083ed7dff6e1dd8e20bec04f9451061951394f5.tar.gz system_core-4083ed7dff6e1dd8e20bec04f9451061951394f5.tar.bz2 |
Merge "Revert "fs_mgr: Support filesystem labels in fstab""
Diffstat (limited to 'fs_mgr')
-rw-r--r-- | fs_mgr/fs_mgr.c | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c index 19f5ac5..40878c1 100644 --- a/fs_mgr/fs_mgr.c +++ b/fs_mgr/fs_mgr.c @@ -28,9 +28,6 @@ #include <libgen.h> #include <time.h> #include <sys/swap.h> -#include <dirent.h> -#include <ext4.h> -#include <ext4_sb.h> #include <linux/loop.h> #include <private/android_filesystem_config.h> @@ -328,83 +325,6 @@ static int mount_with_alternatives(struct fstab *fstab, int start_idx, int *end_ return 0; } -static int translate_ext_labels(struct fstab_rec *rec) -{ - DIR *blockdir = NULL; - struct dirent *ent; - char *label; - size_t label_len; - int ret = -1; - - if (strncmp(rec->blk_device, "LABEL=", 6)) - return 0; - - label = rec->blk_device + 6; - label_len = strlen(label); - - if (label_len > 16) { - ERROR("FS label is longer than allowed by filesystem\n"); - goto out; - } - - - blockdir = opendir("/dev/block"); - if (!blockdir) { - ERROR("couldn't open /dev/block\n"); - goto out; - } - - while ((ent = readdir(blockdir))) { - int fd; - char super_buf[1024]; - struct ext4_super_block *sb; - - if (!ent->d_type == DT_BLK) - continue; - - fd = openat(dirfd(blockdir), ent->d_name, O_RDONLY); - if (fd < 0) { - ERROR("Cannot open block device /dev/block/%s\n", ent->d_name); - goto out; - } - - if (TEMP_FAILURE_RETRY(lseek(fd, 1024, SEEK_SET)) < 0 || - TEMP_FAILURE_RETRY(read(fd, super_buf, 1024)) != 1024) { - /* Probably a loopback device or something else without a readable - * superblock. - */ - close(fd); - continue; - } - - sb = (struct ext4_super_block *)super_buf; - if (sb->s_magic != EXT4_SUPER_MAGIC) { - INFO("/dev/block/%s not ext{234}\n", ent->d_name); - continue; - } - - if (!strncmp(label, sb->s_volume_name, label_len)) { - char *new_blk_device; - - if (asprintf(&new_blk_device, "/dev/block/%s", ent->d_name) < 0) { - ERROR("Could not allocate block device string\n"); - goto out; - } - - INFO("resolved label %s to %s\n", rec->blk_device, new_blk_device); - - free(rec->blk_device); - rec->blk_device = new_blk_device; - ret = 0; - break; - } - } - -out: - closedir(blockdir); - return ret; -} - /* When multiple fstab records share the same mount_point, it will * try to mount each one in turn, and ignore any duplicates after a * first successful mount. @@ -436,17 +356,6 @@ int fs_mgr_mount_all(struct fstab *fstab) continue; } - /* Translate LABEL= file system labels into block devices */ - if (!strcmp(fstab->recs[i].fs_type, "ext2") || - !strcmp(fstab->recs[i].fs_type, "ext3") || - !strcmp(fstab->recs[i].fs_type, "ext4")) { - int tret = translate_ext_labels(&fstab->recs[i]); - if (tret < 0) { - ERROR("Could not translate label to block device\n"); - continue; - } - } - if (fstab->recs[i].fs_mgr_flags & MF_WAIT) { wait_for_file(fstab->recs[i].blk_device, WAIT_TIMEOUT); } |