Remove i_mutex() configure check

The inode structure has used i_mutex as its internal locking
primitive since 2.6.16.  The compatibility code to check for
the previous semaphore primitive has been removed.  However,
the wrapper function itself is being kept because it's entirely
possible this primitive will change again to allow finer grained
locking.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2014-10-01 17:07:46 -04:00
parent 9f36cace41
commit 2bc5666f53
3 changed files with 3 additions and 31 deletions

View File

@ -27,7 +27,6 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
SPL_AC_CTL_NAME
SPL_AC_VMALLOC_INFO
SPL_AC_PDE_DATA
SPL_AC_INODE_I_MUTEX
SPL_AC_MUTEX_OWNER
SPL_AC_MUTEX_OWNER_TASK_STRUCT
SPL_AC_MUTEX_LOCK_NESTED
@ -926,26 +925,6 @@ AC_DEFUN([SPL_AC_CTL_NAME], [
])
])
dnl #
dnl # 2.6.16 API change,
dnl # check whether 'struct inode' has i_mutex
dnl #
AC_DEFUN([SPL_AC_INODE_I_MUTEX], [
AC_MSG_CHECKING([whether struct inode has i_mutex])
SPL_LINUX_TRY_COMPILE([
#include <linux/fs.h>
#include <linux/mutex.h>
],[
struct inode i;
mutex_init(&i.i_mutex);
],[
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_INODE_I_MUTEX, 1, [struct inode has i_mutex])
],[
AC_MSG_RESULT(no)
])
])
dnl #
dnl # 2.6.29 API change,
dnl # Adaptive mutexs were introduced which track the mutex owner. The

View File

@ -81,15 +81,8 @@ spl_filp_fallocate(struct file *fp, int mode, loff_t offset, loff_t len)
# define spl_filp_fsync(fp, sync) file_fsync(fp, (fp)->f_dentry, sync)
#endif /* HAVE_VFS_FSYNC */
#ifdef HAVE_INODE_I_MUTEX
#define spl_inode_lock(ip) (mutex_lock(&(ip)->i_mutex))
#define spl_inode_lock_nested(ip, type) (mutex_lock_nested((&(ip)->i_mutex), \
(type)))
#define spl_inode_unlock(ip) (mutex_unlock(&(ip)->i_mutex))
#else
#define spl_inode_lock(ip) (down(&(ip)->i_sem))
#define spl_inode_unlock(ip) (up(&(ip)->i_sem))
#endif /* HAVE_INODE_I_MUTEX */
#define spl_inode_lock(ip) mutex_lock(&(ip)->i_mutex)
#define spl_inode_unlock(ip) mutex_unlock(&(ip)->i_mutex)
#endif /* SPL_FILE_COMPAT_H */

View File

@ -381,7 +381,7 @@ spl_kern_path_locked(const char *name, struct path *path)
if (rc)
return (ERR_PTR(rc));
spl_inode_lock_nested(parent.dentry->d_inode, I_MUTEX_PARENT);
spl_inode_lock(parent.dentry->d_inode);
dentry = lookup_one_len(basename, parent.dentry, len);
if (IS_ERR(dentry)) {