summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vserver-sources/old/2.1.1_rc14/4412_vs2.1.1-rc14-cloop-feat01.patch')
-rw-r--r--vserver-sources/old/2.1.1_rc14/4412_vs2.1.1-rc14-cloop-feat01.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/vserver-sources/old/2.1.1_rc14/4412_vs2.1.1-rc14-cloop-feat01.patch b/vserver-sources/old/2.1.1_rc14/4412_vs2.1.1-rc14-cloop-feat01.patch
new file mode 100644
index 0000000..d27f7e5
--- /dev/null
+++ b/vserver-sources/old/2.1.1_rc14/4412_vs2.1.1-rc14-cloop-feat01.patch
@@ -0,0 +1,35 @@
+Index: vserver-sources-2.1.1_2.6.16/drivers/block/loop.c
+===================================================================
+--- vserver-sources-2.1.1_2.6.16.orig/drivers/block/loop.c
++++ vserver-sources-2.1.1_2.6.16/drivers/block/loop.c
+@@ -943,7 +943,7 @@ loop_set_status(struct loop_device *lo,
+ struct loop_func_table *xfer;
+
+ if (lo->lo_encrypt_key_size && lo->lo_key_owner != current->uid &&
+- !capable(CAP_SYS_ADMIN))
++ !capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_CRYPTO_LOOP))
+ return -EPERM;
+ if (lo->lo_state != Lo_bound)
+ return -ENXIO;
+@@ -1023,7 +1023,8 @@ loop_get_status(struct loop_device *lo,
+ memcpy(info->lo_crypt_name, lo->lo_crypt_name, LO_NAME_SIZE);
+ info->lo_encrypt_type =
+ lo->lo_encryption ? lo->lo_encryption->number : 0;
+- if (lo->lo_encrypt_key_size && capable(CAP_SYS_ADMIN)) {
++ if (lo->lo_encrypt_key_size &&
++ (capable(CAP_SYS_ADMIN) || vx_ccaps(VXC_CRYPTO_LOOP))) {
+ info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
+ memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
+ lo->lo_encrypt_key_size);
+Index: vserver-sources-2.1.1_2.6.16/include/linux/vserver/context.h
+===================================================================
+--- vserver-sources-2.1.1_2.6.16.orig/include/linux/vserver/context.h
++++ vserver-sources-2.1.1_2.6.16/include/linux/vserver/context.h
+@@ -76,6 +76,7 @@
+ #define VXC_BINARY_MOUNT 0x00040000
+
+ #define VXC_QUOTA_CTL 0x00100000
++#define VXC_CRYPTO_LOOP 0x00200000
+
+
+ /* context state changes */