diff options
author | Brian Behlendorf <[email protected]> | 2014-10-01 17:07:46 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2014-10-17 15:11:51 -0700 |
commit | 2bc5666f53685c6631f9a5d1d8beebdf1325f8e0 (patch) | |
tree | e0e7ba30123dad6b67a5280343db8211e63884d8 | |
parent | 9f36cace4154f7dd855c42aae2eb13a6e1d79362 (diff) |
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 <[email protected]>
-rw-r--r-- | config/spl-build.m4 | 21 | ||||
-rw-r--r-- | include/linux/file_compat.h | 11 | ||||
-rw-r--r-- | module/spl/spl-vnode.c | 2 |
3 files changed, 3 insertions, 31 deletions
diff --git a/config/spl-build.m4 b/config/spl-build.m4 index b1e8d930e..b7ce61fc8 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -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 @@ -927,26 +926,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 dnl # mutex wrappers leverage this functionality to avoid tracking the diff --git a/include/linux/file_compat.h b/include/linux/file_compat.h index 949d844e7..09d0e8250 100644 --- a/include/linux/file_compat.h +++ b/include/linux/file_compat.h @@ -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 */ diff --git a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c index e4eac22eb..a8c5f974d 100644 --- a/module/spl/spl-vnode.c +++ b/module/spl/spl-vnode.c @@ -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)) { |