[Ocfs2-devel] Re: [PATCH] workqueue compat glue for 2.4
Christoph Hellwig
hch at lst.de
Fri Jun 18 12:57:47 CDT 2004
On Tue, Jun 15, 2004 at 10:34:39AM +0200, Christoph Hellwig wrote:
> Version for today's f-c branch:
ping?
>
>
>
> Index: src/nm.c
> ===================================================================
> --- src/nm.c (revision 1014)
> +++ src/nm.c (working copy)
> @@ -119,11 +119,7 @@
>
> finally:
> /* Flush all scheduled tasks */
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> - flush_scheduled_work ();
> -#else
> - flush_scheduled_tasks ();
> -#endif
> + flush_scheduled_work();
>
> if (OcfsIpcCtxt.send_sock) {
> sock_release (OcfsIpcCtxt.send_sock);
> @@ -150,11 +146,7 @@
> ocfs_super *osb;
> ocfs_vote_request_ctxt ctxt;
> __u8 publish_sect[512];
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> struct work_struct ipc_wq;
> -#else
> - struct tq_struct ipc_tq;
> -#endif
> };
>
> void ocfs_process_vote_worker(void *val)
> @@ -222,13 +214,8 @@
>
> sv->osb = osb;
>
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> - INIT_WORK (&sv->ipc_wq, ocfs_process_vote_worker, sv);
> - schedule_work (&sv->ipc_wq);
> -#else
> - INIT_TQUEUE (&sv->ipc_tq, ocfs_process_vote_worker, sv);
> - schedule_task (&sv->ipc_tq);
> -#endif
> + INIT_WORK(&sv->ipc_wq, ocfs_process_vote_worker, sv);
> + schedule_work(&sv->ipc_wq);
>
> bail:
> /* if no error, then the workqueue should clear it? */
> @@ -463,11 +450,7 @@
> }
>
> /* Flush all scheduled tasks */
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> - flush_scheduled_work ();
> -#else
> - flush_scheduled_tasks ();
> -#endif
> + flush_scheduled_work();
>
> complete (&(osb->dlm_complete));
> eek:
> @@ -1429,11 +1412,7 @@
> }
>
> /* Flush all scheduled tasks */
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> - flush_scheduled_work ();
> -#else
> - flush_scheduled_tasks ();
> -#endif
> + flush_scheduled_work();
>
> #warning need a way to wait on all of these threads on dismount
> return status;
> Index: src/journal.c
> ===================================================================
> --- src/journal.c (revision 1014)
> +++ src/journal.c (working copy)
> @@ -1642,11 +1641,7 @@
>
>
> /* Flush all scheduled tasks */
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> - flush_scheduled_work ();
> -#else
> - flush_scheduled_tasks ();
> -#endif
> + flush_scheduled_work();
> complete (&(commit->c_complete));
> return 0;
> }
> Index: src/vote.c
> ===================================================================
> --- src/vote.c (revision 1014)
> +++ src/vote.c (working copy)
> @@ -102,11 +102,7 @@
> LOG_ENTRY ();
>
> /* Initialize the workitem with our worker routine and Q it. */
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> INIT_WORK (&recv_ctxt->ipc_wq, ocfs_dlm_recv_msg, recv_ctxt);
> -#else
> - INIT_TQUEUE (&recv_ctxt->ipc_tq, ocfs_dlm_recv_msg, recv_ctxt);
> -#endif
>
> memset (&sin, 0, sizeof (sin));
> oldfs = get_fs ();
> @@ -133,11 +129,7 @@
> NIPQUAD (sin.sin_addr.s_addr));
>
> if (status == 0)
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> - schedule_work (&recv_ctxt->ipc_wq);
> -#else
> - schedule_task (&recv_ctxt->ipc_tq);
> -#endif
> + schedule_work(&recv_ctxt->ipc_wq);
>
> bail:
> LOG_EXIT_STATUS (status);
> Index: src/volcfg.c
> ===================================================================
> --- src/volcfg.c (revision 1014)
> +++ src/volcfg.c (working copy)
> @@ -114,13 +114,8 @@
> cfg_task = (ocfs_cfg_task *) arg;
>
> /* initialize the task and submit it */
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> - INIT_WORK (&(cfg_task->cfg_wq), ocfs_worker, cfg_task);
> - schedule_work (&cfg_task->cfg_wq);
> -#else
> - INIT_TQUEUE (&(cfg_task->cfg_tq), ocfs_worker, cfg_task);
> - schedule_task (&cfg_task->cfg_tq);
> -#endif
> + INIT_WORK(&cfg_task->cfg_wq, ocfs_worker, cfg_task);
> + schedule_work(&cfg_task->cfg_wq);
>
> LOG_EXIT ();
> return ;
> Index: src/inc/ocfs.h
> ===================================================================
> --- src/inc/ocfs.h (revision 1014)
> +++ src/inc/ocfs.h (working copy)
> @@ -1439,21 +1430,13 @@
> __s32 msg_len;
> __u8 msg[OCFS_MAX_DLM_PKT_SIZE];
> int status;
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> struct work_struct ipc_wq;
> -#else
> - struct tq_struct ipc_tq;
> -#endif
> }
> ocfs_recv_ctxt;
>
> typedef struct _ocfs_cfg_task
> {
> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
> struct work_struct cfg_wq;
> -#else
> - struct tq_struct cfg_tq;
> -#endif
> ocfs_super *osb;
> __u64 lock_off;
> __u8 *buffer;
> Index: src/inc/ocfs_compat.h
> ===================================================================
> --- src/inc/ocfs_compat.h (revision 1014)
> +++ src/inc/ocfs_compat.h (working copy)
> @@ -62,6 +62,11 @@
> #define io_schedule schedule
> #endif
>
> +#define flush_scheduled_work flush_scheduled_tasks
> +#define work_struct tq_struct
> +#define INIT_WORK(w, f, d) INIT_TQUEUE(w, f, d)
> +#define schedule_work(w) schedule_task(w)
> +
> #ifdef HAVE_NPTL
> static inline void dequeue_signal_lock(struct task_struct *task,
> sigset_t *blocked, siginfo_t *info)
> Index: src/alloc.c
> ===================================================================
> --- src/alloc.c (revision 1014)
> +++ src/alloc.c (working copy)
> @@ -915,9 +915,7 @@
> phys_blkno = physicalOffset >> osb->sb->s_blocksize_bits;
>
> for (i = 0; i < numbhs; i++) {
> - bhs[i] = getblk(OCFS_GET_BLOCKDEV(osb->sb),
> - phys_blkno + i,
> - osb->sb->s_blocksize);
> + bhs[i] = sb_getblk(osb->sb, phys_blkno + i);
> if (bhs[i] == NULL) {
> status = -EIO;
> LOG_ERROR_STATUS(status);
---end quoted text---
More information about the Ocfs2-devel
mailing list