started it is possible to trip an assertion. Avoid putting
committed RPCs into the replay list at all to avoid this issue.
+Severity : minor
+Frequency : only for kernels with patches from Lustre below 1.4.3
+Bugzilla : 11248
+Description: Remove old rdonly API
+Details : Remove old rdonly API which unsed from at least lustre 1.4.3
+
------------------------------------------------------------------------------
TBD Cluster File Systems, Inc. <info@clusterfs.com>
Description: Crash on NFS re-export node
Details : under very unusual load conditions an assertion is hit in
ll_intent_file_open()
-
+
------------------------------------------------------------------------------
TBD Cluster File Systems, Inc. <info@clusterfs.com>
# and can only set a single device to discard writes at one time
#
AC_DEFUN([LC_FUNC_DEV_SET_RDONLY],
-[AC_MSG_CHECKING([if kernel has old single-device dev_set_rdonly])
-HAVE_OLD_DSR="`grep -c -s 'dev_set_rdonly.*no_write' $LINUX/drivers/block/ll_rw_blk.c`"
-if test x$HAVE_OLD_DSR != "x1" ; then
- HAVE_OLD_DSR="`grep -c -s 'dev_set_rdonly.*no_write' $LINUX/drivers/block/blkpg.c`"
-fi
-if test x$HAVE_OLD_DSR = "x1" ; then
- AC_DEFINE(HAVE_OLD_DEV_SET_RDONLY, 1,
- [kernel has old single-device dev_set_rdonly])
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
+[AC_MSG_CHECKING([if kernel has new dev_set_rdonly])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+],[
+ #ifndef HAVE_CLEAR_RDONLY_ON_PUT
+ #error needs to be patched by lustre kernel patches from Lustre version 1.4.3 or above.
+ #endif
+],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_DEV_SET_RDONLY, 1, [kernel has new dev_set_rdonly])
+],[
+ AC_MSG_RESULT([no, Linux kernel source needs to be patches by lustre
+kernel patches from Lustre version 1.4.3 or above.])
+])
])
#
void lvfs_clear_rdonly(lvfs_sbdev_type dev)
{
-#ifndef HAVE_CLEAR_RDONLY_ON_PUT
- CDEBUG(D_IOCTL | D_HA, "unset dev %lx rdonly\n", (long)dev);
- if (lvfs_check_rdonly(dev)) {
- lvfs_sbdev_sync(dev);
-#ifdef HAVE_OLD_DEV_SET_RDONLY
- dev_clear_rdonly(2);
-#else
- dev_clear_rdonly(dev);
-#endif
- }
-#else
CDEBUG(D_IOCTL | D_HA, "(will unset dev %lx rdonly on put)\n",
(long)dev);
-#endif
}
+
EXPORT_SYMBOL(lvfs_set_rdonly);
EXPORT_SYMBOL(lvfs_check_rdonly);
EXPORT_SYMBOL(lvfs_clear_rdonly);
* kernel patch */
#include <linux/lustre_version.h>
#ifdef LUSTRE_KERNEL_VERSION
-#define LUSTRE_MIN_VERSION 37
+#define LUSTRE_MIN_VERSION 45
#define LUSTRE_MAX_VERSION 47
#if (LUSTRE_KERNEL_VERSION < LUSTRE_MIN_VERSION)
# error Cannot continue: Your Lustre kernel patch is older than the sources