EXTRA_KCFLAGS="$tmp_flags"
]) # LB_EXT4_JOURNAL_GET_WRITE_ACCESS_4A
+# LB_HAVE_INODE_LOCK_SHARED
+#
+AC_DEFUN([LB_HAVE_INODE_LOCK_SHARED], [
+LB_CHECK_COMPILE([if inode_lock_shared() defined],
+inode_lock_shared, [
+ #include <linux/fs.h>
+],[
+ struct inode i;
+
+ inode_lock_shared(&i);
+],[
+ AC_DEFINE(HAVE_INODE_LOCK_SHARED, 1,
+ [inode_lock_shared() defined])
+])
+]) # LB_HAVE_INODE_LOCK_SHARED
+
#
# LB_CONFIG_LDISKFS
#
LB_EXT4_INC_DEC_COUNT_2ARGS
LB_JBD2_JOURNAL_GET_MAX_TXN_BUFS
LB_EXT4_JOURNAL_GET_WRITE_ACCESS_4A
+ LB_HAVE_INODE_LOCK_SHARED
AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [posix acls for ldiskfs])
AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [fs security for ldiskfs])
AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [extened attributes for ldiskfs])
#include "osd_internal.h"
#include "osd_oi.h"
+#ifndef HAVE_INODE_LOCK_SHARED
+#define inode_lock_shared(dir) inode_lock(dir)
+#define inode_unlock_shared(dir) inode_unlock(dir)
+#endif
+
static void osd_push_ctxt(const struct osd_device *dev,
struct lvfs_run_ctxt *newctxt,
struct lvfs_run_ctxt *save)
child->d_name.len = strlen(name);
dir = d_seq->d_inode;
- inode_lock(dir);
+ inode_lock_shared(dir);
bh = osd_ldiskfs_find_entry(dir, &child->d_name, &de, NULL, NULL);
- inode_unlock(dir);
+ inode_unlock_shared(dir);
if (IS_ERR(bh))
RETURN(PTR_ERR(bh));