summaryrefslogtreecommitdiffstats
path: root/sys/gnu/fs
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2000-01-01 14:43:20 +0000
committerbde <bde@FreeBSD.org>2000-01-01 14:43:20 +0000
commita5e8250f8cd3d7d14638c62ec2b7337f4a4b34da (patch)
tree46ea4cf85cc20dafb426252282477c2bc3757a9a /sys/gnu/fs
parent3a5569cf048ed1771b7c5b4764b52be8f1a15a14 (diff)
downloadFreeBSD-src-a5e8250f8cd3d7d14638c62ec2b7337f4a4b34da.zip
FreeBSD-src-a5e8250f8cd3d7d14638c62ec2b7337f4a4b34da.tar.gz
Use an ifdef in ext2_fs.h instead of a bogus separate file (ext2_fs_i.h)
to avoid the namespace problems caused by <ufs/ufs/inode.h> #defining i_mode, etc. ext2_fs_i.h had nothing to do with the Linux version. It was a small part of the Linux version of ext2_fs.h (the part that declares extra in-core fields for an inode). We don't need it because we use the ufs in-core inode for the extra fields.
Diffstat (limited to 'sys/gnu/fs')
-rw-r--r--sys/gnu/fs/ext2fs/ext2_fs.h67
-rw-r--r--sys/gnu/fs/ext2fs/ext2_inode_cnv.c7
2 files changed, 72 insertions, 2 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_fs.h b/sys/gnu/fs/ext2fs/ext2_fs.h
index ce45bbd..fc54119 100644
--- a/sys/gnu/fs/ext2fs/ext2_fs.h
+++ b/sys/gnu/fs/ext2fs/ext2_fs.h
@@ -3,6 +3,8 @@
*
* Aug 1995, Godmar Back (gback@cs.utah.edu)
* University of Utah, Department of Computer Science
+ *
+ * $FreeBSD$
*/
/*
* linux/include/linux/ext2_fs.h
@@ -227,6 +229,71 @@ struct ext2_group_desc
#define EXT2_IOC_SETVERSION _IOW('v', 2, long)
/*
+ * Only declare `struct ext2_inode' if <ufs/ufs/inode.h> hasn't made things
+ * difficult by #defining i_mode and other struct members. The details of
+ * the struct are only needed in ext2_inode_cnv.c where the ext2fs on-disk
+ * inode is converted to a ufs in-core inode.
+ */
+#ifndef i_mode
+
+/*
+ * Structure of an inode on the disk
+ */
+struct ext2_inode {
+ __u16 i_mode; /* File mode */
+ __u16 i_uid; /* Owner Uid */
+ __u32 i_size; /* Size in bytes */
+ __u32 i_atime; /* Access time */
+ __u32 i_ctime; /* Creation time */
+ __u32 i_mtime; /* Modification time */
+ __u32 i_dtime; /* Deletion Time */
+ __u16 i_gid; /* Group Id */
+ __u16 i_links_count; /* Links count */
+ __u32 i_blocks; /* Blocks count */
+ __u32 i_flags; /* File flags */
+ union {
+ struct {
+ __u32 l_i_reserved1;
+ } linux1;
+ struct {
+ __u32 h_i_translator;
+ } hurd1;
+ struct {
+ __u32 m_i_reserved1;
+ } masix1;
+ } osd1; /* OS dependent 1 */
+ __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
+ __u32 i_version; /* File version (for NFS) */
+ __u32 i_file_acl; /* File ACL */
+ __u32 i_dir_acl; /* Directory ACL */
+ __u32 i_faddr; /* Fragment address */
+ union {
+ struct {
+ __u8 l_i_frag; /* Fragment number */
+ __u8 l_i_fsize; /* Fragment size */
+ __u16 i_pad1;
+ __u32 l_i_reserved2[2];
+ } linux2;
+ struct {
+ __u8 h_i_frag; /* Fragment number */
+ __u8 h_i_fsize; /* Fragment size */
+ __u16 h_i_mode_high;
+ __u16 h_i_uid_high;
+ __u16 h_i_gid_high;
+ __u32 h_i_author;
+ } hurd2;
+ struct {
+ __u8 m_i_frag; /* Fragment number */
+ __u8 m_i_fsize; /* Fragment size */
+ __u16 m_pad1;
+ __u32 m_i_reserved2[2];
+ } masix2;
+ } osd2; /* OS dependent 2 */
+};
+
+#endif /* i_mode */
+
+/*
* File system states
*/
#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */
diff --git a/sys/gnu/fs/ext2fs/ext2_inode_cnv.c b/sys/gnu/fs/ext2fs/ext2_inode_cnv.c
index f97e8d3..ab8ceb1 100644
--- a/sys/gnu/fs/ext2fs/ext2_inode_cnv.c
+++ b/sys/gnu/fs/ext2fs/ext2_inode_cnv.c
@@ -19,6 +19,7 @@
* improvements that they make and grant CSL redistribution rights.
*
* Utah $Hdr$
+ * $FreeBSD$
*/
/*
@@ -33,7 +34,10 @@
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
-/* these defs would destroy the ext2_fs_i #include */
+/*
+ * Undo the definitions in <ufs/ufs/inode.h> that would destroy the include
+ * of <gnu/ext2fs/ext2_fs.h>.
+ */
#undef i_atime
#undef i_blocks
#undef i_ctime
@@ -52,7 +56,6 @@
#include <gnu/ext2fs/ext2_fs.h>
#include <gnu/ext2fs/ext2_extern.h>
-#include <gnu/ext2fs/ext2_fs_i.h>
void
ext2_print_dinode( di )
OpenPOWER on IntegriCloud