])
])
+#
+# LC_RELEASEPAGE_ARG_GFP_T
+# more 2.6 api changes. Second argument type for newer kernels is
+# gfp_t and for older 2.6 kernels is int.
+#
+AC_DEFUN([LC_RELEASEPAGE_ARG_GFP_T],
+[AC_MSG_CHECKING([releasepage has gfp_t as argument])
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+
+ static int my_releasepage(struct page *pg, gfp_t gfp_mask)
+ {
+ return 0;
+ }
+
+ struct address_space_operations my_aops = {
+ .releasepage = my_releasepage,
+ };
+],[
+ my_aops.releasepage(NULL, 0);
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_RELEASEPAGE_ARG_GFP_T, 1,
+ [Define if releasepage argument should be gfp_t])
+],[
+ AC_MSG_RESULT(no)
+])
+EXTRA_KCFLAGS="$tmp_flags"
+])
+
# LC_UMOUNTBEGIN_HAS_VFSMOUNT
# more 2.6 API changes. 2.6.18 umount_begin has different parameters
AC_DEFUN([LC_UMOUNTBEGIN_HAS_VFSMOUNT],
LC_STATFS_DENTRY_PARAM
LC_VFS_KERN_MOUNT
LC_INVALIDATEPAGE_RETURN_INT
+ LC_RELEASEPAGE_ARG_GFP_T
LC_UMOUNTBEGIN_HAS_VFSMOUNT
#2.6.18 + RHEL5 (fc6)
#ifdef HAVE_RCU
# ifdef HAVE_CALL_RCU_PARAM
-# define my_call_rcu(rcu, cb) call_rcu(rcu, cb, rcu)
+# define my_call_rcu(rcu, cb) call_rcu(rcu, (void (*) (void *))(cb), rcu)
# else
# define my_call_rcu(rcu, cb) call_rcu(rcu, cb)
# endif
LL_CDEBUG_PAGE(D_PAGE, pages[i], "offset "LPU64","
" from %u, bytes = %u\n",
- pos, from, bytes);
+ (__u64)pos, from, bytes);
LASSERTF(pos >> CFS_PAGE_SHIFT == pages[i]->index,
"wrong page index %lu (%lu)\n",
pages[i]->index,
}
#endif
+#ifdef HAVE_RELEASEPAGE_ARG_GFP_T
static int ll_releasepage(struct page *page, gfp_t gfp_mask)
+#else
+static int ll_releasepage(struct page *page, int gfp_mask)
+#endif
{
if (PagePrivate(page))
ll_removepage(page);
static int fsfilt_ext3_setup(struct super_block *sb)
{
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,6)) && defined(HAVE_QUOTA_SUPPORT)
+#if !defined(S_PDIROPS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,6)) && defined(HAVE_QUOTA_SUPPORT)
struct ext3_sb_info *sbi = EXT3_SB(sb);
#endif
#if 0
if (rc & (rc - 1))
size[DLM_INTENT_REC_OFF + 2] =
min(size[DLM_INTENT_REC_OFF + 2] + round_up(rc) - rc,
- obddev->u.cli.cl_max_mds_easize);
+ (__u32)obddev->u.cli.cl_max_mds_easize);
/* If inode is known, cancel conflicting OPEN locks. */
if (data->fid2.id) {
}
if (lvb->lvb_blocks != dentry->d_inode->i_blocks) {
CDEBUG(D_DLMTRACE,"res: "LPU64" updating lvb blocks from disk: "
- LPU64" -> %lu\n", res->lr_name.name[0],
- lvb->lvb_blocks, dentry->d_inode->i_blocks);
+ LPU64" -> "LPU64"\n", res->lr_name.name[0],
+ lvb->lvb_blocks, (__u64)dentry->d_inode->i_blocks);
lvb->lvb_blocks = dentry->d_inode->i_blocks;
}
", pending_write: "LPU64", record: "LPD64
", qunit_sz: %lu, tune_sz: %lu, ret: %d.\n",
QDATA_IS_BLK(qdata) ? 'b' : 'i', limit, usage, pending_write,
- record, qunit_sz, tune_sz, ret);
+ (__s64)record, qunit_sz, tune_sz, ret);
LASSERT(ret == 0 || qdata->qd_count);
spin_unlock(&lqs->lqs_lock);
LQS_IS_GRP(lqs) ? 'g' : 'u', \
lqs->lqs_bunit_sz, lqs->lqs_btune_sz, lqs->lqs_iunit_sz, \
lqs->lqs_itune_sz, lqs->lqs_bwrite_pending, \
- lqs->lqs_iwrite_pending, lqs->lqs_ino_rec, \
- lqs->lqs_blk_rec, atomic_read(&lqs->lqs_refcount), ## arg);
+ lqs->lqs_iwrite_pending, (__s64)lqs->lqs_ino_rec, \
+ (__s64)lqs->lqs_blk_rec, atomic_read(&lqs->lqs_refcount), \
+ ## arg);
/* quota_context.c */
struct stat stat_buf;
char tmp_path[PATH_MAX];
char mount_path[PATH_MAX] = {0};
- char c;
+ int c;
int retval;
progname = argv[0];
if (lcfg->lcfg_nid)
printf("nid=%s("LPX64") ", libcfs_nid2str(lcfg->lcfg_nid),
- lcfg->lcfg_nid);
+ (__u64)lcfg->lcfg_nid);
if (lcfg->lcfg_nal)
printf("nal=%d ", lcfg->lcfg_nal);
for (i = 0; i < lcfg->lcfg_bufcount; i++)
FILE *countfile = NULL;
char filecount[PATH_MAX];
unsigned long dir_num = 0, dir_num_orig = 0;/* starting directory */
- char c;
+ int c;
progname = strrchr(argv[0], '/') ? strrchr(argv[0], '/') + 1 : argv[0];
- while ((c = (char)getopt_long(argc, argv, "t:rwvplo:h",
+ while ((c = getopt_long(argc, argv, "t:rwvplo:h",
longopts, NULL)) != -1) {
switch (c) {
case 'c':