diff options
Diffstat (limited to 'vserver-sources/old/2.0.2_rc14-r1/4414_vs2.0.2-rc14-ml-loop-fix01.patch')
-rw-r--r-- | vserver-sources/old/2.0.2_rc14-r1/4414_vs2.0.2-rc14-ml-loop-fix01.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/vserver-sources/old/2.0.2_rc14-r1/4414_vs2.0.2-rc14-ml-loop-fix01.patch b/vserver-sources/old/2.0.2_rc14-r1/4414_vs2.0.2-rc14-ml-loop-fix01.patch new file mode 100644 index 0000000..12f881e --- /dev/null +++ b/vserver-sources/old/2.0.2_rc14-r1/4414_vs2.0.2-rc14-ml-loop-fix01.patch @@ -0,0 +1,28 @@ +Index: vserver-sources-2.0.2_2.6.16/drivers/block/loop.c +=================================================================== +--- vserver-sources-2.0.2_2.6.16.orig/drivers/block/loop.c ++++ vserver-sources-2.0.2_2.6.16/drivers/block/loop.c +@@ -747,6 +747,7 @@ static int loop_set_fd(struct loop_devic + int lo_flags = 0; + int error; + loff_t size; ++ pid_t pid; + + /* This is safe, since we have a reference from open(). */ + __module_get(THIS_MODULE); +@@ -839,10 +840,14 @@ static int loop_set_fd(struct loop_devic + + set_blocksize(bdev, lo_blocksize); + +- kernel_thread(loop_thread, lo, CLONE_KERNEL); ++ pid = kernel_thread(loop_thread, lo, CLONE_KERNEL); ++ if (pid < 0) ++ goto out_err; + wait_for_completion(&lo->lo_done); + return 0; + ++ out_err: ++ error = (int)pid; + out_putf: + fput(file); + out: |