summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2004-10-04 23:37:38 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2004-10-04 23:37:38 +0000
commit71af365c0cf7ca1e0601b5f7b23bc5cd8cf24181 (patch)
treed8eedd043e5e47b6b497748f4ed28e4858c323a9 /sys
parent6120ad2b53ff4cbe377ccfcd30d6c46d91fcd5d2 (diff)
Make doff_t u_quad_t. This allows me to read iso9660 DVD-ROMs that
are > 2GB. doff_t should really be off_t but making it signed exposed a bug that I haven't tried to track down yet. Based on a patch from and OK by pedro@.
Diffstat (limited to 'sys')
-rw-r--r--sys/isofs/cd9660/cd9660_node.h25
1 files changed, 11 insertions, 14 deletions
diff --git a/sys/isofs/cd9660/cd9660_node.h b/sys/isofs/cd9660/cd9660_node.h
index b3fa1797baa..ee4bca7d144 100644
--- a/sys/isofs/cd9660/cd9660_node.h
+++ b/sys/isofs/cd9660/cd9660_node.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: cd9660_node.h,v 1.16 2003/09/23 16:51:12 millert Exp $ */
+/* $OpenBSD: cd9660_node.h,v 1.17 2004/10/04 23:37:37 millert Exp $ */
/* $NetBSD: cd9660_node.h,v 1.15 1997/04/11 21:52:01 kleink Exp $ */
/*-
@@ -39,14 +39,7 @@
#include <sys/buf.h>
-/*
- * Theoretically, directories can be more than 2Gb in length,
- * however, in practice this seems unlikely. So, we define
- * the type doff_t as a long to keep down the cost of doing
- * lookup on a 32-bit machine. If you are porting to a 64-bit
- * architecture, you should make doff_t the same as off_t.
- */
-#define doff_t long
+#define doff_t u_quad_t
typedef struct {
struct timespec iso_atime; /* time of last access */
@@ -75,7 +68,7 @@ struct iso_node {
struct iso_node *i_next, **i_prev; /* hash chain */
struct vnode *i_vnode; /* vnode associated with this inode */
struct vnode *i_devvp; /* vnode for block I/O */
- u_long i_flag; /* see below */
+ u_int i_flag; /* see below */
dev_t i_dev; /* device where inode resides */
ino_t i_number; /* the identity of the inode */
/* we use the actual starting block of the file */
@@ -87,10 +80,14 @@ struct iso_node {
ino_t i_ino; /* inode number of found directory */
struct lock i_lock; /* node lock */
- long iso_extent; /* extent of file */
- long i_size;
- long iso_start; /* actual start of data of file (may be different */
- /* from iso_extent, if file has extended attributes) */
+ doff_t iso_extent; /* extent of file */
+ doff_t i_size;
+ /*
+ * Actual start of data file (may be different from iso_extent, if the
+ * file has extended attributes).
+ */
+ doff_t iso_start;
+
ISO_RRIP_INODE inode;
struct cluster_info i_ci;
};