Re: [GIT PULL] dlm fix for 2.6.38

From: Tejun Heo
Date: Sat Feb 12 2011 - 10:51:25 EST


Hello,

On Sat, Feb 12, 2011 at 03:44:35PM +0000, Steven Whitehouse wrote:
> > diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
> > index 9c64ae9..2d8c87b 100644
> > --- a/fs/dlm/lowcomms.c
> > +++ b/fs/dlm/lowcomms.c
> > @@ -1468,15 +1468,13 @@ static void work_stop(void)
> >
> > static int work_start(void)
> > {
> > - recv_workqueue = alloc_workqueue("dlm_recv", WQ_MEM_RECLAIM |
> > - WQ_HIGHPRI | WQ_FREEZEABLE, 0);
> > + recv_workqueue = create_singlethread_workqueue("dlm_recv");

recv_workqueue was multithread one even before the conversion. It
probably is best to leave this part alone.

> > - send_workqueue = alloc_workqueue("dlm_send", WQ_MEM_RECLAIM |
> > - WQ_HIGHPRI | WQ_FREEZEABLE, 0);
> > + send_workqueue = create_singlethread_workqueue("dlm_send");

send_workqueue was converted from ST to MT but the correct way at this
point would be,

alloc_ordered_workqueue("dlm_send",
WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_FREEZEABLE);

> > if (!send_workqueue) {
> > log_print("can't start dlm_send");
> > destroy_workqueue(recv_workqueue);
> >
> >
>
> What is the issue here? If there is a problem with the workqueues then
> we should ask Tejun about it,

Yeah, what kind of problem was it? There's only one work per
connection so reordering is not a problem. All the workqueue
operations use proper locking, so the conversion seemed safe to me.
What am I missing?

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/