mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-22 05:01:27 +00:00
cleanup: remove support of old kernels without cancel_delayed_work_sync
Otherwise we can not use scst_mutex on works git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6887 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -631,37 +631,6 @@ static inline void *vzalloc(unsigned long size)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* <linux/workqueue.h> */
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23) && !defined(BACKPORT_LINUX_WORKQUEUE_TO_2_6_19)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20))
|
||||
static inline int cancel_delayed_work_sync(struct delayed_work *work)
|
||||
{
|
||||
int res;
|
||||
|
||||
res = cancel_delayed_work(work);
|
||||
flush_scheduled_work();
|
||||
return res;
|
||||
}
|
||||
#else
|
||||
/*
|
||||
* While cancel_delayed_work_sync() has not been defined in the vanilla kernel
|
||||
* 2.6.18 nor in 2.6.19 nor in RHEL/CentOS 5.0..5.5, a definition is available
|
||||
* in RHEL/CentOS 5.6. Unfortunately that definition is incompatible with what
|
||||
* we need. So define cancel_delayed_work() as a macro such that it overrides
|
||||
* the RHEL/CentOS 5.6 inline function definition in <linux/workqueue.h>.
|
||||
*/
|
||||
#define cancel_delayed_work_sync(work) \
|
||||
({ \
|
||||
int res; \
|
||||
\
|
||||
res = cancel_delayed_work((work)); \
|
||||
flush_scheduled_work(); \
|
||||
res; \
|
||||
})
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* <scsi/scsi_cmnd.h> */
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
|
||||
|
||||
@@ -64,11 +64,6 @@ Pass-through dev handlers will not work.
|
||||
/*
|
||||
* Main SCST mutex. All targets, devices and dev_types management is done
|
||||
* under this mutex.
|
||||
*
|
||||
* It must NOT be used in any works (schedule_work(), etc.), because
|
||||
* otherwise a deadlock (double lock, actually) is possible, e.g., with
|
||||
* scst_user detach_tgt(), which is called under scst_mutex and calls
|
||||
* flush_scheduled_work().
|
||||
*/
|
||||
struct mutex scst_mutex;
|
||||
EXPORT_SYMBOL_GPL(scst_mutex);
|
||||
|
||||
Reference in New Issue
Block a user