From 2c590d5fb6987e6579a82285b742a318cc1fdb50 Mon Sep 17 00:00:00 2001 From: Mike Marshall Date: Fri, 24 Jul 2015 10:37:15 -0400 Subject: [PATCH] Orangefs: kernel client update 1. Stephen Rothwell noticed that orangefs would not compile on powerpc... Signed-off-by: Mike Marshall --- fs/orangefs/devpvfs2-req.c | 17 ++++++++++++----- fs/orangefs/protocol.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/fs/orangefs/devpvfs2-req.c b/fs/orangefs/devpvfs2-req.c index 3e45022..7e60fd0 100644 --- a/fs/orangefs/devpvfs2-req.c +++ b/fs/orangefs/devpvfs2-req.c @@ -36,7 +36,7 @@ do { \ static int hash_func(__u64 tag, int table_size) { - return tag % ((unsigned int)table_size); + return do_div(tag, (unsigned int)table_size); } static void pvfs2_devreq_add_op(struct pvfs2_kernel_op_s *op) @@ -279,7 +279,7 @@ static ssize_t pvfs2_devreq_writev(struct file *file, /* Either there is a trailer or there isn't */ if (count != notrailer_count && count != (notrailer_count + 1)) { - gossip_err("Error: Number of iov vectors is (%ld) and notrailer count is %d\n", + gossip_err("Error: Number of iov vectors is (%zu) and notrailer count is %d\n", count, notrailer_count); return -EPROTO; @@ -356,7 +356,7 @@ static ssize_t pvfs2_devreq_writev(struct file *file, "writev: trailer size %ld\n", (unsigned long)op->downcall.trailer_size); if (count != (notrailer_count + 1)) { - gossip_err("Error: trailer size (%ld) is non-zero, no trailer elements though? (%ld)\n", (unsigned long)op->downcall.trailer_size, count); + gossip_err("Error: trailer size (%ld) is non-zero, no trailer elements though? (%zu)\n", (unsigned long)op->downcall.trailer_size, count); dev_req_release(buffer); put_op(op); return -EPROTO; @@ -908,6 +908,14 @@ static long pvfs2_devreq_compat_ioctl(struct file *filp, unsigned int cmd, return dispatch_ioctl_command(cmd, arg); } +#endif /* CONFIG_COMPAT is in .config */ + +/* + * The following two ioctl32 functions had been refactored into the above + * CONFIG_COMPAT ifdef, but that was an over simplification that was + * not noticed until we tried to compile on power pc... + */ +#if (defined(CONFIG_COMPAT) && !defined(HAVE_REGISTER_IOCTL32_CONVERSION)) || !defined(CONFIG_COMPAT) static int pvfs2_ioctl32_init(void) { return 0; @@ -917,8 +925,7 @@ static void pvfs2_ioctl32_cleanup(void) { return; } - -#endif /* CONFIG_COMPAT is in .config */ +#endif /* the assigned character device major number */ static int pvfs2_dev_major; diff --git a/fs/orangefs/protocol.h b/fs/orangefs/protocol.h index 2fb3a63..8e0c8a6 100644 --- a/fs/orangefs/protocol.h +++ b/fs/orangefs/protocol.h @@ -1,6 +1,7 @@ #include #include #include +#include extern struct client_debug_mask *cdm_array; extern char *debug_help_string; -- 2.7.4