Change the kernel dev_t, representing a pointer to a specinfo structure,
[dragonfly.git] / sys / vfs / ufs / inode.h
index 5346081..98de003 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*-
  * Copyright (c) 1982, 1989, 1993
  *     The Regents of the University of California.  All rights reserved.
  * (c) UNIX System Laboratories, Inc.
  *
  *     @(#)inode.h     8.9 (Berkeley) 5/14/95
  * $FreeBSD: src/sys/ufs/ufs/inode.h,v 1.28.2.2 2001/09/29 12:52:52 iedowse Exp $
- * $DragonFly: src/sys/vfs/ufs/inode.h,v 1.6 2004/05/03 16:06:27 joerg Exp $
+ * $DragonFly: src/sys/vfs/ufs/inode.h,v 1.12 2006/09/10 01:26:41 dillon Exp $
  */
 
 #ifndef _UFS_UFS_INODE_H_
 #define        _UFS_UFS_INODE_H_
 
+#if defined(_KERNEL) || defined(_KERNEL_STRUCTURES)
+
 #ifndef _SYS_LOCK_H_
 #include <sys/lock.h>
 #endif
 #ifndef _SYS_LOCKF_H
 #include <sys/lockf.h>
 #endif
+
+#endif
+
 #ifndef _SYS_QUEUE_H_
 #include <sys/queue.h>
 #endif
@@ -76,22 +81,15 @@ typedef long ufs_lbn_t;
  * active, and is put back when the file is no longer being used.
  */
 struct inode {
-       struct   lock i_lock;   /* Inode lock. >Keep this first< */
-       LIST_ENTRY(inode) i_hash;/* Hash chain. */
+       struct inode    *i_next;/* Hash chain */
        struct  vnode  *i_vnode;/* Vnode associated with this inode. */
        struct  vnode  *i_devvp;/* Vnode for block I/O. */
-       u_int32_t i_flag;       /* flags, see below */
-       dev_t     i_dev;        /* Device associated with the inode. */
+       uint32_t i_flag;        /* flags, see below */
+       cdev_t    i_dev;        /* Device associated with the inode. */
        ino_t     i_number;     /* The identity of the inode. */
        int       i_effnlink;   /* i_nlink when I/O completes */
-
-       union {                 /* Associated filesystem. */
-               struct  fs *fs;         /* FFS */
-               struct  ext2_sb_info *e2fs;     /* EXT2FS */
-       } inode_u;
-#define        i_fs    inode_u.fs
-#define        i_e2fs  inode_u.e2fs
-       struct   dquot *i_dquot[MAXQUOTAS]; /* Dquot structures. */
+       struct fs *i_fs;        /* Associated filesystem */
+       struct   ufs_dquot *i_dquot[MAXQUOTAS]; /* Dquot structures. */
        u_quad_t i_modrev;      /* Revision level for NFS lease. */
        struct   lockf i_lockf;/* Head of byte-level lock list. */
        /*
@@ -102,14 +100,14 @@ struct inode {
        doff_t    i_diroff;     /* Offset in dir, where we found last entry. */
        doff_t    i_offset;     /* Offset of free space in directory. */
        ino_t     i_ino;        /* Inode number of found directory. */
-       u_int32_t i_reclen;     /* Size of found directory entry. */
-       u_int32_t i_spare[3];   /* XXX actually non-spare (for ext2fs). */
+       uint32_t i_reclen;      /* Size of found directory entry. */
+       uint32_t i_spare[3];    /* XXX actually non-spare (for ext2fs). */
 
        struct dirhash *i_dirhash; /* Hashing for large directories */
        /*
-        * The on-disk dinode itself.
+        * The on-disk dinode itself (128 bytes)
         */
-       struct  dinode i_din;   /* 128 bytes of the on-disk dinode. */
+       struct  ufs1_dinode i_din;
 };
 
 #define        i_atime         i_din.di_atime
@@ -130,6 +128,7 @@ struct inode {
 #define        i_shortlink     i_din.di_shortlink
 #define        i_size          i_din.di_size
 #define        i_uid           i_din.di_uid
+#define i_fsmid                i_din.di_fsmid
 
 #endif
 
@@ -166,8 +165,8 @@ struct indir {
 
 /* This overlays the fid structure (see mount.h). */
 struct ufid {
-       u_int16_t ufid_len;     /* Length of structure. */
-       u_int16_t ufid_pad;     /* Force 32-bit alignment. */
+       uint16_t ufid_len;      /* Length of structure. */
+       uint16_t ufid_pad;      /* Force 32-bit alignment. */
        ino_t     ufid_ino;     /* File number (ino). */
        int32_t   ufid_gen;     /* Generation number. */
 };