~alpine/devel

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch

[alpine-devel] [PATCH] initramfs-init: kopt for enabling discards with cryptsetup

Sören Tempel
Details
Message ID
<20170610101215.3129-1-soeren+git@soeren-tempel.net>
Sender timestamp
1497089535
DKIM signature
missing
Download raw message
Patch: +12 -3
When enabled allows the use of discard (TRIM) requests for the device.
See cryptsetup(1) for more information.
---
 initramfs-init.in | 7 +++++--
 nlplug-findfs.c   | 8 +++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/initramfs-init.in b/initramfs-init.in
index 8a1c867..bbb37d2 100755
--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -261,8 +261,8 @@ setup_nbd() {
set -- $(cat /proc/cmdline)

myopts="alpine_dev autodetect autoraid chart cryptroot cryptdm cryptheader cryptoffset
	debug_init dma init_args keep_apk_new modules ovl_dev pkgs quiet root_size root
	usbdelay ip alpine_repo apkovl alpine_start splash blacklist
	cryptdiscards debug_init dma init_args keep_apk_new modules ovl_dev pkgs quiet
	root_size root usbdelay ip alpine_repo apkovl alpine_start splash blacklist
	overlaytmpfs rootfstype rootflags nbd resume"

for opt; do
@@ -353,6 +353,9 @@ eend 0

if [ -n "$KOPT_cryptroot" ]; then
	cryptopts="-c ${KOPT_cryptroot}"
	if [ "$KOPT_cryptdiscards" = "yes" ]; then
		cryptopts="$cryptopts -D"
	fi
	if [ -n "$KOPT_cryptdm" ]; then
		cryptopts="$cryptopts -m ${KOPT_cryptdm}"
	fi
diff --git a/nlplug-findfs.c b/nlplug-findfs.c
index f23d0dd..be525cc 100644
--- a/nlplug-findfs.c
+++ b/nlplug-findfs.c
@@ -22,6 +22,7 @@
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <stdint.h>

#include <sys/eventfd.h>
#include <sys/signalfd.h>
@@ -317,6 +318,7 @@ struct cryptconf {
	size_t payload_offset;
	pthread_t tid;
	pthread_mutex_t mutex;
	uint32_t flags;
};

struct ueventconf {
@@ -605,7 +607,8 @@ static void *cryptsetup_thread(void *data)
		pthread_mutex_lock(&c->crypt.mutex);
		r = crypt_activate_by_passphrase(cd, c->crypt.data.name,
						 CRYPT_ANY_SLOT,
						 pass, strlen(pass), 0);
						 pass, strlen(pass),
						 c->crypt.flags);
		pthread_mutex_unlock(&c->crypt.mutex);
		memset(pass, 0, sizeof(pass)); /* wipe pass after use */

@@ -1240,6 +1243,9 @@ int main(int argc, char *argv[])
	case 'n':
		not_found_is_ok = 1;
		break;
	case 'D':
		conf.crypt.flags |= CRYPT_ACTIVATE_ALLOW_DISCARDS;
		break;
	case 'd':
		dodebug = 1;
		break;
-- 
2.13.0



---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---