Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 137f201d authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "init: do_mounts: Add a dummy definition for dm_table_put""

parents f505d0d4 b23921e6
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
Boot time creation of mapped devices
===================================

It is possible to configure a device mapper device to act as the root
device for your system in two ways.

The first is to build an initial ramdisk which boots to a minimal
userspace which configures the device, then pivot_root(8) in to it.

For simple device mapper configurations, it is possible to boot directly
using the following kernel command line:

dm="<name> <uuid> <ro>,table line 1,...,table line n"

name = the name to associate with the device
	after boot, udev, if used, will use that name to label
	the device node.
uuid = may be 'none' or the UUID desired for the device.
ro = may be "ro" or "rw".  If "ro", the device and device table will be
	marked read-only.

Each table line may be as normal when using the dmsetup tool except for
two variations:
1. Any use of commas will be interpreted as a newline
2. Quotation marks cannot be escaped and cannot be used without
   terminating the dm= argument.

Unless renamed by udev, the device node created will be dm-0 as the
first minor number for the device-mapper is used during early creation.

Example
=======

- Booting to a linear array made up of user-mode linux block devices:

  dm="lroot none 0, 0 4096 linear 98:16 0, 4096 4096 linear 98:32 0" \
  root=/dev/dm-0

Will boot to a rw dm-linear target of 8192 sectors split across two
block devices identified by their major:minor numbers.  After boot, udev
will rename this target to /dev/mapper/lroot (depending on the rules).
No uuid was assigned.
+4 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ parameter is applicable:
	BLACKFIN Blackfin architecture is enabled.
	CLK	Common clock infrastructure is enabled.
	CMA	Contiguous Memory Area support is enabled.
	DM	Device mapper support is enabled.
	DRM	Direct Rendering Management support is enabled.
	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
@@ -919,6 +920,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.

	dis_ucode_ldr	[X86] Disable the microcode loader.

	dm=		[DM] Allows early creation of a device-mapper device.
			See Documentation/device-mapper/boot.txt.

	dma_debug=off	If the kernel is compiled with DMA_API_DEBUG support,
			this option disables the debugging code at boot.

+39 −0
Original line number Diff line number Diff line
@@ -1923,6 +1923,45 @@ void dm_interface_exit(void)
	dm_hash_exit();
}


/**
 * dm_ioctl_export - Permanently export a mapped device via the ioctl interface
 * @md: Pointer to mapped_device
 * @name: Buffer (size DM_NAME_LEN) for name
 * @uuid: Buffer (size DM_UUID_LEN) for uuid or NULL if not desired
 */
int dm_ioctl_export(struct mapped_device *md, const char *name,
		    const char *uuid)
{
	int r = 0;
	struct hash_cell *hc;

	if (!md) {
		r = -ENXIO;
		goto out;
	}

	/* The name and uuid can only be set once. */
	mutex_lock(&dm_hash_cells_mutex);
	hc = dm_get_mdptr(md);
	mutex_unlock(&dm_hash_cells_mutex);
	if (hc) {
		DMERR("%s: already exported", dm_device_name(md));
		r = -ENXIO;
		goto out;
	}

	r = dm_hash_insert(name, uuid, md);
	if (r) {
		DMERR("%s: could not bind to '%s'", dm_device_name(md), name);
		goto out;
	}

	/* Let udev know we've changed. */
	dm_kobject_uevent(md, KOBJ_CHANGE, dm_get_event_nr(md));
out:
	return r;
}
/**
 * dm_copy_name_and_uuid - Copy mapped device name & uuid into supplied buffers
 * @md: Pointer to mapped_device
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
#include <linux/vmalloc.h>
#include <linux/blkdev.h>
#include <linux/namei.h>
#include <linux/mount.h>
#include <linux/ctype.h>
#include <linux/string.h>
#include <linux/slab.h>
+6 −0
Original line number Diff line number Diff line
@@ -382,6 +382,12 @@ void dm_put(struct mapped_device *md);
void dm_set_mdptr(struct mapped_device *md, void *ptr);
void *dm_get_mdptr(struct mapped_device *md);

/*
 * Export the device via the ioctl interface (uses mdptr).
 */
int dm_ioctl_export(struct mapped_device *md, const char *name,
		    const char *uuid);

/*
 * A device can still be used while suspended, but I/O is deferred.
 */
Loading