Building on tilepro revealed two minor portability issues: the blocklayout.c file used prefetchw() without #include <linux/prefetch.h>, and the nfs4filelayout.c file used do_div() on an s64 not a u64. This change fixes those two issues so the NFS code builds on tilepro. Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx> --- fs/nfs/blocklayout/blocklayout.c | 1 + fs/nfs/nfs4filelayout.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c index e56564d..9561c8f 100644 --- a/fs/nfs/blocklayout/blocklayout.c +++ b/fs/nfs/blocklayout/blocklayout.c @@ -36,6 +36,7 @@ #include <linux/namei.h> #include <linux/bio.h> /* struct bio */ #include <linux/buffer_head.h> /* various write calls */ +#include <linux/prefetch.h> #include "blocklayout.h" diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c index e8915d4..6976a72 100644 --- a/fs/nfs/nfs4filelayout.c +++ b/fs/nfs/nfs4filelayout.c @@ -48,13 +48,13 @@ filelayout_get_dense_offset(struct nfs4_filelayout_segment *flseg, loff_t offset) { u32 stripe_width = flseg->stripe_unit * flseg->dsaddr->stripe_count; - u64 tmp; + u64 tmp, uoff; offset -= flseg->pattern_offset; - tmp = offset; + tmp = uoff = offset; do_div(tmp, stripe_width); - return tmp * flseg->stripe_unit + do_div(offset, flseg->stripe_unit); + return tmp * flseg->stripe_unit + do_div(uoff, flseg->stripe_unit); } /* This function is used by the layout driver to calculate the -- 1.6.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html