summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2014-10-23 15:09:46 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2014-10-23 15:09:46 +0000
commit0deafb5e59652c7ad0a07547829b43a88fac1807 (patch)
tree685b087ddb5a99ed14a167f6c12c8f28c6ed1e64
parent4f49b3308acb81c3bc6db04e398eb4b165e8c011 (diff)
downloadillumos-joyent-0deafb5e59652c7ad0a07547829b43a88fac1807.tar.gz
OS-3450 lxbrand 64bit ftruncate fails
-rw-r--r--usr/src/lib/brand/lx/lx_brand/common/lx_brand.c4
-rw-r--r--usr/src/lib/brand/lx/lx_brand/common/truncate.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/usr/src/lib/brand/lx/lx_brand/common/lx_brand.c b/usr/src/lib/brand/lx/lx_brand/common/lx_brand.c
index 4300c3f9ee..d111c5fe96 100644
--- a/usr/src/lib/brand/lx/lx_brand/common/lx_brand.c
+++ b/usr/src/lib/brand/lx/lx_brand/common/lx_brand.c
@@ -1192,8 +1192,8 @@ static struct lx_sysent sysents[] = {
{"flock", lx_flock, 0, 2}, /* 73 */
{"fsync", lx_fsync, 0, 1}, /* 74 */
{"fdatasync", lx_fdatasync, 0, 1}, /* 75 */
- {"truncate", lx_truncate64, 0, 2}, /* 76 */
- {"ftruncate", lx_ftruncate64, 0, 2}, /* 77 */
+ {"truncate", lx_truncate, 0, 2}, /* 76 */
+ {"ftruncate", lx_ftruncate, 0, 2}, /* 77 */
{"getdents", lx_getdents, 0, 3}, /* 78 */
{"getcwd", lx_getcwd, 0, 2}, /* 79 */
{"chdir", lx_chdir, 0, 1}, /* 80 */
diff --git a/usr/src/lib/brand/lx/lx_brand/common/truncate.c b/usr/src/lib/brand/lx/lx_brand/common/truncate.c
index afc35fd675..6f1a9e1e58 100644
--- a/usr/src/lib/brand/lx/lx_brand/common/truncate.c
+++ b/usr/src/lib/brand/lx/lx_brand/common/truncate.c
@@ -40,8 +40,10 @@
long
lx_truncate(uintptr_t path, uintptr_t length)
{
+#if defined(_ILP32)
if ((off_t)length >= 0xffffffffUL)
return (-EFBIG);
+#endif
return (truncate((const char *)path, (off_t)length) == 0 ? 0 : -errno);
}
@@ -51,8 +53,10 @@ lx_ftruncate(uintptr_t fd, uintptr_t length)
{
int r;
+#if defined(_ILP32)
if ((off_t)length >= 0xffffffffUL)
return (-EFBIG);
+#endif
r = ftruncate((int)fd, (off_t)length);
/*