commit 86763a18468e780d327618880f4f037121df5fdd
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date:   Wed Mar 14 16:37:59 2007 -0400

    skeleton for an asynchronous odf thread

diff --git a/fs/unionfs/odf.h b/fs/unionfs/odf.h
index df52ee1..20cc1a2 100644
--- a/fs/unionfs/odf.h
+++ b/fs/unionfs/odf.h
@@ -60,6 +60,9 @@
 
 #define ODF_DIRENT_MAGIC 0x0DFD1300
 
+/* Reclaim thread timeout */
+#define ODF_RC_TIMEOUT 1000
+
 /* super */
 struct odf_sb_info* odf_read_super(char *options);
 void odf_put_super(struct odf_sb_info *osi);
diff --git a/fs/unionfs/sioq.c b/fs/unionfs/sioq.c
index a2cc293..3a7e2a4 100644
--- a/fs/unionfs/sioq.c
+++ b/fs/unionfs/sioq.c
@@ -46,7 +46,7 @@ void stop_sioq(void)
                destroy_workqueue(superio_workqueue);
 }
 
-void run_sioq(work_func_t func, struct sioq_args *args)
+void __run_sioq(work_func_t func, struct sioq_args *args, int async)
 {
        INIT_WORK(&args->work, func);
 
@@ -55,7 +55,8 @@ void run_sioq(work_func_t func, struct sioq_args *args)
                /* TODO: do accounting if needed */
                schedule();
        }
-       wait_for_completion(&args->comp);
+       if (!async)
+               wait_for_completion(&args->comp);
 }
 
 int __run_sioa(void *args)
diff --git a/fs/unionfs/sioq.h b/fs/unionfs/sioq.h
index a7be2f0..ec8d760 100644
--- a/fs/unionfs/sioq.h
+++ b/fs/unionfs/sioq.h
@@ -52,6 +52,7 @@ struct sioq_args {
                struct mknod_args mknod;
                struct symlink_args symlink;
                struct unlink_args unlink;
+               struct reclaim_args reclaim;
        };
 };
 
@@ -84,6 +85,7 @@ extern void __unionfs_mkdir(struct work_struct *work);
 extern void __unionfs_mknod(struct work_struct *work);
 extern void __unionfs_symlink(struct work_struct *work);
 extern void __unionfs_unlink(struct work_struct *work);
+extern void __unionfs_reclaim(struct work_struct *work);
 
 #endif /* _SIOQ_H */
 
diff --git a/fs/unionfs/union.h b/fs/unionfs/union.h
index 979e4b7..0c7387e 100644
--- a/fs/unionfs/union.h
+++ b/fs/unionfs/union.h
@@ -122,6 +122,7 @@ struct odf_sb_info {
        struct odf_dentry_info *odi_sb;
        struct odf_dentry_info *odi_rc;
        struct odf_dentry_info *odi_ic;
+       struct sioq_args *sioq;
 };
 
 /* unionfs inode data in memory */
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to