summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vserver-sources/old/2.1.1_rc14-r1/4416_vs2.1.1-rc14-loop-feat01.patch')
-rw-r--r--vserver-sources/old/2.1.1_rc14-r1/4416_vs2.1.1-rc14-loop-feat01.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/vserver-sources/old/2.1.1_rc14-r1/4416_vs2.1.1-rc14-loop-feat01.patch b/vserver-sources/old/2.1.1_rc14-r1/4416_vs2.1.1-rc14-loop-feat01.patch
new file mode 100644
index 0000000..971c78d
--- /dev/null
+++ b/vserver-sources/old/2.1.1_rc14-r1/4416_vs2.1.1-rc14-loop-feat01.patch
@@ -0,0 +1,30 @@
+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
+@@ -74,6 +74,7 @@
+ #include <linux/completion.h>
+ #include <linux/highmem.h>
+ #include <linux/gfp.h>
++#include <linux/vs_context.h>
+
+ #include <asm/uaccess.h>
+
+@@ -743,6 +744,7 @@ static int loop_set_fd(struct loop_devic
+ struct file *file, *f;
+ struct inode *inode;
+ struct address_space *mapping;
++ struct vx_info_save vxis;
+ unsigned lo_blocksize;
+ int lo_flags = 0;
+ int error;
+@@ -840,7 +842,9 @@ static int loop_set_fd(struct loop_devic
+
+ set_blocksize(bdev, lo_blocksize);
+
++ __enter_vx_admin(&vxis);
+ pid = kernel_thread(loop_thread, lo, CLONE_KERNEL);
++ __leave_vx_admin(&vxis);
+ if (pid < 0)
+ goto out_err;
+ wait_for_completion(&lo->lo_done);