Linux Compat: inode->i_mutex/i_sem

Create spl_inode_lock/spl_inode_unlock compability macros to simply
access to the inode mutex/sem.  This avoids the need to have to ugly
up the code with the required #define's at every call site.  At the
moment the SPL only uses this in one place but higher layers can
benefit from the macro.
This commit is contained in:
Brian Behlendorf
2011-01-10 12:35:22 -08:00
parent b7dc313837
commit 6bf4d76f47
2 changed files with 14 additions and 11 deletions
+11 -1
View File
@@ -51,11 +51,21 @@ spl_filp_open(const char *name, int flags, int mode, int *err)
#define spl_filp_write(fp, b, s, p) (fp)->f_op->write((fp), (b), (s), p)
#ifdef HAVE_3ARGS_FILE_FSYNC
#define spl_filp_fsync(fp, sync) (fp)->f_op->fsync((fp), \
#define spl_filp_fsync(fp, sync) (fp)->f_op->fsync((fp), \
(fp)->f_dentry, sync)
#else
#define spl_filp_fsync(fp, sync) (fp)->f_op->fsync((fp), sync)
#endif
#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 */
#endif /* SPL_FILE_COMPAT_H */