summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfs_subs.c
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-06-14 15:52:00 +0000
committerbde <bde@FreeBSD.org>1998-06-14 15:52:00 +0000
commita90040b583bb2b134bd685c9f4b7ac1d187f26a6 (patch)
treed96564c5196896d8b375fb9e4d5029c83607faf4 /sys/nfsclient/nfs_subs.c
parent76251ad8323572aefde82467f55d4881fd250d99 (diff)
downloadFreeBSD-src-a90040b583bb2b134bd685c9f4b7ac1d187f26a6.zip
FreeBSD-src-a90040b583bb2b134bd685c9f4b7ac1d187f26a6.tar.gz
Avoid an egcs pessimization for 64-bit signed division on i386's.
Pre-2.8 versions of gcc generate a call to __divdi3() for all 64-bit signed divisions, but egcs optimizes them to a shift and fixup when the divisor is a constant power of 2. Unfortunately, it generates a call to __cmpdi2() for the fixup, although all except possibly ancient versions of gcc and egcs do ordinary 64-bit comparisons inline.
Diffstat (limited to 'sys/nfsclient/nfs_subs.c')
-rw-r--r--sys/nfsclient/nfs_subs.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/nfsclient/nfs_subs.c b/sys/nfsclient/nfs_subs.c
index b53f59d..f256959 100644
--- a/sys/nfsclient/nfs_subs.c
+++ b/sys/nfsclient/nfs_subs.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_subs.c 8.8 (Berkeley) 5/22/95
- * $Id: nfs_subs.c,v 1.60 1998/05/31 19:16:08 peter Exp $
+ * $Id: nfs_subs.c,v 1.61 1998/05/31 20:08:55 peter Exp $
*/
/*
@@ -2011,11 +2011,11 @@ nfs_getcookie(np, off, add)
register struct nfsdmap *dp, *dp2;
register int pos;
- pos = off / NFS_DIRBLKSIZ;
- if (pos == 0) {
+ pos = (uoff_t)off / NFS_DIRBLKSIZ;
+ if (pos == 0 || off < 0) {
#ifdef DIAGNOSTIC
if (add)
- panic("nfs getcookie add at 0");
+ panic("nfs getcookie add at <= 0");
#endif
return (&nfs_nullcookie);
}
OpenPOWER on IntegriCloud