blob: 971c78d3f994f7341a3db5043bf5cc4c486c7a42 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
|