Blame ecryptfs-utils-87-autoload.patch

cac1ea
diff -up ecryptfs-utils-103/src/utils/ecryptfs-mount-private.autoload ecryptfs-utils-103/src/utils/ecryptfs-mount-private
cac1ea
--- ecryptfs-utils-103/src/utils/ecryptfs-mount-private.autoload	2012-05-18 21:06:17.000000000 +0200
cac1ea
+++ ecryptfs-utils-103/src/utils/ecryptfs-mount-private	2013-01-28 16:41:59.164861848 +0100
25e938
@@ -33,6 +33,9 @@ if /sbin/mount.ecryptfs_private >/dev/nu
25e938
 	exit 0
25e938
 fi
25e938
 
25e938
+#load kernel module if it's missing, FNE support check would fail otherwise
25e938
+[ ! -e /sys/fs/ecryptfs/version ] && modinfo ecryptfs >/dev/null 2>&1 && /sbin/mount.ecryptfs_private --loadmodule
25e938
+
25e938
 # Otherwise, interactively prompt for the user's password
25e938
 if [ -f "$WRAPPED_PASSPHRASE_FILE" -a -f "$MOUNT_PASSPHRASE_SIG_FILE" ]; then
25e938
 	tries=0
cac1ea
diff -up ecryptfs-utils-103/src/utils/ecryptfs-setup-private.autoload ecryptfs-utils-103/src/utils/ecryptfs-setup-private
cac1ea
--- ecryptfs-utils-103/src/utils/ecryptfs-setup-private.autoload	2012-05-18 21:06:17.000000000 +0200
cac1ea
+++ ecryptfs-utils-103/src/utils/ecryptfs-setup-private	2013-01-28 16:41:59.164861848 +0100
2c1ecd
@@ -101,6 +101,7 @@ random_passphrase () {
2c1ecd
 }
2c1ecd
 
2c1ecd
 filename_encryption_available() {
25e938
+	[ ! -e /sys/fs/ecryptfs/version ] && modinfo ecryptfs >/dev/null 2>&1 && /sbin/mount.ecryptfs_private --loadmodule
2c1ecd
 	version=$(cat /sys/fs/ecryptfs/version 2>/dev/null)
2c1ecd
 	[ -z "$version" ] && error "$(gettext 'Cannot get ecryptfs version, ecryptfs kernel module not loaded?')"
2c1ecd
 	[ $(($version & 0x100)) -eq 0 ] && return 1
cac1ea
diff -up ecryptfs-utils-103/src/utils/mount.ecryptfs_private.c.autoload ecryptfs-utils-103/src/utils/mount.ecryptfs_private.c
cac1ea
--- ecryptfs-utils-103/src/utils/mount.ecryptfs_private.c.autoload	2012-12-12 23:13:43.000000000 +0100
cac1ea
+++ ecryptfs-utils-103/src/utils/mount.ecryptfs_private.c	2013-01-28 17:17:26.714859379 +0100
cac1ea
@@ -509,6 +509,13 @@ int main(int argc, char *argv[]) {
cac1ea
 	char **sigs;
2c1ecd
 	FILE *fh_counter = NULL;
2c1ecd
 
2c1ecd
+	if (argc == 2 && !strcmp(argv[1],"--loadmodule"))
2c1ecd
+	{
2c1ecd
+	  execl("/sbin/modprobe","modprobe","ecryptfs",NULL);
2c1ecd
+	  perror("Unable to load ecryptfs module");
2c1ecd
+	  return -1;
2c1ecd
+	}
2c1ecd
+	
2c1ecd
 	uid = getuid();
7731a0
 	gid = getgid();
2c1ecd
 	/* Non-privileged effective uid is sufficient for all but the code