Hello, Linus. On Thu, Jan 17, 2013 at 06:47:48PM -0800, Linus Torvalds wrote: > On Thu, Jan 17, 2013 at 5:25 PM, Tejun Heo <tj@xxxxxxxxxx> wrote: > > Implement work/async_current_func() which query whether the current > > task is a workqueue or async worker respectively and, if so, return > > the current function being executed along with work / async item > > related information. > > So why the odd interface? The only user of it calls it with a Yeah, I was doing something else in async and arguing between that and current_is_async() and ended up keeping it as it was consistent with the workqueue counterpart. > NULL/NULL pair of arguments, and in general it's just way too complex > to be an exported function at all. I *suspect* you chose that complex > interface because you feel you may have some use for it inside of the > async code itself, but why isn't that then not totally private to > there? > > IOW, why isn't the interface just > > static struct worker *current_worker(void) > { > if (current->flags & PF_WQ_WORKER) > return kthread_data(current); > return NULL; > } I'd prefer to keep struct worker inside workqueue.c, so how about keeping the workqueue part and make async part current_is_async()? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html