1 /* 2 * Copyright (c) 1982, 1986, 1989 Regents of the University of California. 3 * All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 * 7 * @(#)ufsmount.h 7.11 (Berkeley) 11/05/91 8 */ 9 10 /* 11 * The root inode is the root of the file system. Inode 0 can't be used for 12 * normal purposes and historically bad blocks were linked to inode 1, thus 13 * the root inode is 2. (inode 1 is no longer used for this purpose, however 14 * numerous dump tapes make this assumption, so we are stuck with it). 15 */ 16 #define ROOTINO ((ino_t)2) 17 18 struct buf; 19 struct inode; 20 struct nameidata; 21 struct timeval; 22 struct ucred; 23 struct uio; 24 struct vnode; 25 26 /* This structure describes the UFS specific mount structure data. */ 27 struct ufsmount { 28 struct mount *um_mountp; /* filesystem vfs structure */ 29 dev_t um_dev; /* device mounted */ 30 struct vnode *um_devvp; /* block device mounted vnode */ 31 union { /* pointer to superblock */ 32 struct lfs *lfs; /* LFS */ 33 struct fs *fs; /* FFS */ 34 } ufsmount_u; 35 #define um_fs ufsmount_u.fs 36 #define um_lfs ufsmount_u.lfs 37 struct vnode *um_quotas[MAXQUOTAS]; /* pointer to quota files */ 38 struct ucred *um_cred[MAXQUOTAS]; /* quota file access cred */ 39 time_t um_btime[MAXQUOTAS]; /* block quota time limit */ 40 time_t um_itime[MAXQUOTAS]; /* inode quota time limit */ 41 char um_qflags[MAXQUOTAS]; /* quota specific flags */ 42 }; 43 /* 44 * Flags describing the state of quotas. 45 */ 46 #define QTF_OPENING 0x01 /* Q_QUOTAON in progress */ 47 #define QTF_CLOSING 0x02 /* Q_QUOTAOFF in progress */ 48 49 /* Convert mount ptr to ufsmount ptr. */ 50 #define VFSTOUFS(mp) ((struct ufsmount *)((mp)->mnt_data)) 51