xref: /original-bsd/sys/ufs/ffs/ufsmount.h (revision 3f6a50aa)
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