backported vs2.1.x fix to irq handling, which caused incorrect scheduler behavior
[linux-2.6.git] / drivers / block / loop.c
index b35bf49..e775b84 100644 (file)
@@ -72,6 +72,7 @@
 #include <linux/completion.h>
 #include <linux/highmem.h>
 #include <linux/gfp.h>
+#include <linux/vs_base.h>
 #include <linux/vs_context.h>
 
 #include <asm/uaccess.h>
@@ -743,7 +744,6 @@ static int loop_set_fd(struct loop_device *lo, struct file *lo_file,
        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;
@@ -842,9 +842,7 @@ static int loop_set_fd(struct loop_device *lo, struct file *lo_file,
 
        set_blocksize(bdev, lo_blocksize);
 
-       __enter_vx_admin(&vxis);
        error = kernel_thread(loop_thread, lo, CLONE_KERNEL);
-       __leave_vx_admin(&vxis);
        if (error < 0)
                goto out_putf;
        wait_for_completion(&lo->lo_done);