commit 5628cf43c089e347669e6de2cde46dfa1ccf1e44
Author: Erez_Zadok <[EMAIL PROTECTED]>
Date:   Sat Jul 7 22:41:34 2007 -0400

    Unionfs: call complete() after calling sioq code to create a symlink
    
    bugfix: without complete(), we hang when copying up symlinks.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

diff --git a/fs/unionfs/sioq.c b/fs/unionfs/sioq.c
index 320c9a1..3f7c23e 100644
--- a/fs/unionfs/sioq.c
+++ b/fs/unionfs/sioq.c
@@ -53,7 +53,7 @@ void run_sioq(void (*func)(void *arg), struct sioq_args *args)
 
        init_completion(&args->comp);
        while (!queue_work(sioq, &wk)) {
-               // TODO: do accounting if needed
+               /* TODO: do accounting if needed */
                schedule();
        }
        wait_for_completion(&args->comp);
@@ -85,12 +85,14 @@ void __unionfs_mknod(void *data)
                                args->mknod.mode, args->mknod.dev);
        complete(&args->comp);
 }
+
 void __unionfs_symlink(void *data)
 {
        struct sioq_args *args = data;
 
        args->err = vfs_symlink(args->symlink.parent, args->symlink.dentry,
                                args->symlink.symbuf, args->symlink.mode);
+       complete(&args->comp);
 }
 
 void __unionfs_unlink(void *data)
@@ -106,7 +108,6 @@ void __delete_whiteouts(void *data) {
 
        args->err = do_delete_whiteouts(args->deletewh.dentry, 
args->deletewh.bindex,
                                        args->deletewh.namelist);
-
        complete(&args->comp);
 }
 
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to