* Copyright (c) 1982, 1986, 1989, 1993
* The Regents of the University of California. All rights reserved.
* %sccs.include.redist.c%
* @(#)ufsmount.h 8.1 (Berkeley) %G%
/* This structure describes the UFS specific mount structure data. */
struct mount
*um_mountp
; /* filesystem vfs structure */
dev_t um_dev
; /* device mounted */
struct vnode
*um_devvp
; /* block device mounted vnode */
union { /* pointer to superblock */
struct lfs
*lfs
; /* LFS */
#define um_fs ufsmount_u.fs
#define um_lfs ufsmount_u.lfs
struct vnode
*um_quotas
[MAXQUOTAS
]; /* pointer to quota files */
struct ucred
*um_cred
[MAXQUOTAS
]; /* quota file access cred */
u_long um_nindir
; /* indirect ptrs per block */
u_long um_bptrtodb
; /* indir ptr to disk block */
u_long um_seqinc
; /* inc between seq blocks */
time_t um_btime
[MAXQUOTAS
]; /* block quota time limit */
time_t um_itime
[MAXQUOTAS
]; /* inode quota time limit */
char um_qflags
[MAXQUOTAS
]; /* quota specific flags */
struct netcred um_defexported
; /* Default export */
struct radix_node_head
*um_rtable
[AF_MAX
+1]; /* Individual exports */
* Flags describing the state of quotas.
#define QTF_OPENING 0x01 /* Q_QUOTAON in progress */
#define QTF_CLOSING 0x02 /* Q_QUOTAOFF in progress */
/* Convert mount ptr to ufsmount ptr. */
#define VFSTOUFS(mp) ((struct ufsmount *)((mp)->mnt_data))
* Macros to access file system parameters in the ufsmount structure.
#define blkptrtodb(ump, b) ((b) << (ump)->um_bptrtodb)
#define is_sequential(ump, a, b) ((b) == (a) + ump->um_seqinc)
#define MNINDIR(ump) ((ump)->um_nindir)