Loading arch/arm64/configs/apq8053_IoE-perf_defconfig +5 −1 Original line number Diff line number Diff line Loading @@ -245,12 +245,15 @@ CONFIG_SCSI_UFSHCD_PLATFORM=y CONFIG_SCSI_UFS_QCOM=y CONFIG_SCSI_UFS_QCOM_ICE=y CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y CONFIG_DM_REQ_CRYPT=y CONFIG_DM_UEVENT=y CONFIG_DM_VERITY=y CONFIG_DM_VERITY_FEC=y CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=1 CONFIG_DM_ANDROID_VERITY=y CONFIG_NETDEVICES=y CONFIG_DUMMY=y CONFIG_TUN=y Loading Loading @@ -589,6 +592,7 @@ CONFIG_IPC_LOGGING=y CONFIG_CPU_FREQ_SWITCH_PROFILER=y CONFIG_DEBUG_SET_MODULE_RONX=y CONFIG_DEBUG_RODATA=y CONFIG_KEYS_DEBUG_PROC_KEYS=y CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y CONFIG_LSM_MMAP_MIN_ADDR=4096 Loading arch/arm64/configs/msmcortex_defconfig +5 −1 Original line number Diff line number Diff line Loading @@ -254,12 +254,15 @@ CONFIG_SCSI_UFSHCD_PLATFORM=y CONFIG_SCSI_UFS_QCOM=y CONFIG_SCSI_UFS_QCOM_ICE=y CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y CONFIG_DM_REQ_CRYPT=y CONFIG_DM_UEVENT=y CONFIG_DM_VERITY=y CONFIG_DM_VERITY_FEC=y CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=1 CONFIG_DM_ANDROID_VERITY=y CONFIG_NETDEVICES=y CONFIG_DUMMY=y CONFIG_TUN=y Loading Loading @@ -682,6 +685,7 @@ CONFIG_PANIC_ON_DATA_CORRUPTION=y CONFIG_DEBUG_SET_MODULE_RONX=y CONFIG_FREE_PAGES_RDONLY=y CONFIG_DEBUG_RODATA=y CONFIG_KEYS_DEBUG_PROC_KEYS=y CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y Loading drivers/md/dm-snap.c +9 −0 Original line number Diff line number Diff line Loading @@ -1099,6 +1099,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) int i; int r = -EINVAL; char *origin_path, *cow_path; dev_t origin_dev, cow_dev; unsigned args_used, num_flush_bios = 1; fmode_t origin_mode = FMODE_READ; Loading Loading @@ -1129,11 +1130,19 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) ti->error = "Cannot get origin device"; goto bad_origin; } origin_dev = s->origin->bdev->bd_dev; cow_path = argv[0]; argv++; argc--; cow_dev = dm_get_dev_t(cow_path); if (cow_dev && cow_dev == origin_dev) { ti->error = "COW device cannot be the same as origin device"; r = -EINVAL; goto bad_cow; } r = dm_get_device(ti, cow_path, dm_table_get_mode(ti->table), &s->cow); if (r) { ti->error = "Cannot get COW device"; Loading drivers/md/dm-table.c +24 −17 Original line number Diff line number Diff line Loading @@ -363,6 +363,26 @@ static int upgrade_mode(struct dm_dev_internal *dd, fmode_t new_mode, return 0; } /* * Convert the path to a device */ dev_t dm_get_dev_t(const char *path) { dev_t uninitialized_var(dev); struct block_device *bdev; bdev = lookup_bdev(path); if (IS_ERR(bdev)) dev = name_to_dev_t(path); else { dev = bdev->bd_dev; bdput(bdev); } return dev; } EXPORT_SYMBOL_GPL(dm_get_dev_t); /* * Add a device to the list, or just increment the usage count if * it's already present. Loading @@ -371,28 +391,15 @@ int dm_get_device(struct dm_target *ti, const char *path, fmode_t mode, struct dm_dev **result) { int r; dev_t uninitialized_var(dev); dev_t dev; struct dm_dev_internal *dd; unsigned int major, minor; struct dm_table *t = ti->table; char dummy; BUG_ON(!t); if (sscanf(path, "%u:%u%c", &major, &minor, &dummy) == 2) { /* Extract the major/minor numbers */ dev = MKDEV(major, minor); if (MAJOR(dev) != major || MINOR(dev) != minor) return -EOVERFLOW; } else { /* convert the path to a device */ struct block_device *bdev = lookup_bdev(path); if (IS_ERR(bdev)) return PTR_ERR(bdev); dev = bdev->bd_dev; bdput(bdev); } dev = dm_get_dev_t(path); if (!dev) return -ENODEV; dd = find_device(&t->devices, dev); if (!dd) { Loading include/linux/device-mapper.h +2 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,8 @@ struct dm_dev { char name[16]; }; dev_t dm_get_dev_t(const char *path); /* * Constructors should call these functions to ensure destination devices * are opened/closed correctly. Loading Loading
arch/arm64/configs/apq8053_IoE-perf_defconfig +5 −1 Original line number Diff line number Diff line Loading @@ -245,12 +245,15 @@ CONFIG_SCSI_UFSHCD_PLATFORM=y CONFIG_SCSI_UFS_QCOM=y CONFIG_SCSI_UFS_QCOM_ICE=y CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y CONFIG_DM_REQ_CRYPT=y CONFIG_DM_UEVENT=y CONFIG_DM_VERITY=y CONFIG_DM_VERITY_FEC=y CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=1 CONFIG_DM_ANDROID_VERITY=y CONFIG_NETDEVICES=y CONFIG_DUMMY=y CONFIG_TUN=y Loading Loading @@ -589,6 +592,7 @@ CONFIG_IPC_LOGGING=y CONFIG_CPU_FREQ_SWITCH_PROFILER=y CONFIG_DEBUG_SET_MODULE_RONX=y CONFIG_DEBUG_RODATA=y CONFIG_KEYS_DEBUG_PROC_KEYS=y CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y CONFIG_LSM_MMAP_MIN_ADDR=4096 Loading
arch/arm64/configs/msmcortex_defconfig +5 −1 Original line number Diff line number Diff line Loading @@ -254,12 +254,15 @@ CONFIG_SCSI_UFSHCD_PLATFORM=y CONFIG_SCSI_UFS_QCOM=y CONFIG_SCSI_UFS_QCOM_ICE=y CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y CONFIG_DM_REQ_CRYPT=y CONFIG_DM_UEVENT=y CONFIG_DM_VERITY=y CONFIG_DM_VERITY_FEC=y CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=1 CONFIG_DM_ANDROID_VERITY=y CONFIG_NETDEVICES=y CONFIG_DUMMY=y CONFIG_TUN=y Loading Loading @@ -682,6 +685,7 @@ CONFIG_PANIC_ON_DATA_CORRUPTION=y CONFIG_DEBUG_SET_MODULE_RONX=y CONFIG_FREE_PAGES_RDONLY=y CONFIG_DEBUG_RODATA=y CONFIG_KEYS_DEBUG_PROC_KEYS=y CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y Loading
drivers/md/dm-snap.c +9 −0 Original line number Diff line number Diff line Loading @@ -1099,6 +1099,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) int i; int r = -EINVAL; char *origin_path, *cow_path; dev_t origin_dev, cow_dev; unsigned args_used, num_flush_bios = 1; fmode_t origin_mode = FMODE_READ; Loading Loading @@ -1129,11 +1130,19 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) ti->error = "Cannot get origin device"; goto bad_origin; } origin_dev = s->origin->bdev->bd_dev; cow_path = argv[0]; argv++; argc--; cow_dev = dm_get_dev_t(cow_path); if (cow_dev && cow_dev == origin_dev) { ti->error = "COW device cannot be the same as origin device"; r = -EINVAL; goto bad_cow; } r = dm_get_device(ti, cow_path, dm_table_get_mode(ti->table), &s->cow); if (r) { ti->error = "Cannot get COW device"; Loading
drivers/md/dm-table.c +24 −17 Original line number Diff line number Diff line Loading @@ -363,6 +363,26 @@ static int upgrade_mode(struct dm_dev_internal *dd, fmode_t new_mode, return 0; } /* * Convert the path to a device */ dev_t dm_get_dev_t(const char *path) { dev_t uninitialized_var(dev); struct block_device *bdev; bdev = lookup_bdev(path); if (IS_ERR(bdev)) dev = name_to_dev_t(path); else { dev = bdev->bd_dev; bdput(bdev); } return dev; } EXPORT_SYMBOL_GPL(dm_get_dev_t); /* * Add a device to the list, or just increment the usage count if * it's already present. Loading @@ -371,28 +391,15 @@ int dm_get_device(struct dm_target *ti, const char *path, fmode_t mode, struct dm_dev **result) { int r; dev_t uninitialized_var(dev); dev_t dev; struct dm_dev_internal *dd; unsigned int major, minor; struct dm_table *t = ti->table; char dummy; BUG_ON(!t); if (sscanf(path, "%u:%u%c", &major, &minor, &dummy) == 2) { /* Extract the major/minor numbers */ dev = MKDEV(major, minor); if (MAJOR(dev) != major || MINOR(dev) != minor) return -EOVERFLOW; } else { /* convert the path to a device */ struct block_device *bdev = lookup_bdev(path); if (IS_ERR(bdev)) return PTR_ERR(bdev); dev = bdev->bd_dev; bdput(bdev); } dev = dm_get_dev_t(path); if (!dev) return -ENODEV; dd = find_device(&t->devices, dev); if (!dd) { Loading
include/linux/device-mapper.h +2 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,8 @@ struct dm_dev { char name[16]; }; dev_t dm_get_dev_t(const char *path); /* * Constructors should call these functions to ensure destination devices * are opened/closed correctly. Loading