summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2011-07-24 17:43:09 +0000
committermckusick <mckusick@FreeBSD.org>2011-07-24 17:43:09 +0000
commit64e0ba1afe60a4c7d7a1960154875516b560d46c (patch)
tree34165b8fac799217592f1def1e7cfddc8f80f2e7 /sys
parent8a4b781ce664ac2b8b5a9c0bc13114cf02c6499b (diff)
downloadFreeBSD-src-64e0ba1afe60a4c7d7a1960154875516b560d46c.zip
FreeBSD-src-64e0ba1afe60a4c7d7a1960154875516b560d46c.tar.gz
This update changes the mnt_flag field in the mount structure from
32 bits to 64 bits and eliminates the unused mnt_xflag field. The existing mnt_flag field is completely out of bits, so this update gives us room to expand. Note that the f_flags field in the statfs structure is already 64 bits, so the expanded mnt_flag field can be exported without having to make any changes in the statfs structure. Approved by: re (bz)
Diffstat (limited to 'sys')
-rw-r--r--sys/fs/cd9660/iso.h2
-rw-r--r--sys/fs/msdosfs/msdosfsmount.h2
-rw-r--r--sys/fs/ntfs/ntfs.h2
-rw-r--r--sys/fs/smbfs/smbfs.h2
-rw-r--r--sys/kern/kern_jail.c4
-rw-r--r--sys/kern/vfs_mount.c3
-rw-r--r--sys/sys/mount.h72
7 files changed, 44 insertions, 43 deletions
diff --git a/sys/fs/cd9660/iso.h b/sys/fs/cd9660/iso.h
index 0988bf6..89322e7 100644
--- a/sys/fs/cd9660/iso.h
+++ b/sys/fs/cd9660/iso.h
@@ -220,7 +220,7 @@ enum ISO_FTYPE { ISO_FTYPE_DEFAULT, ISO_FTYPE_9660, ISO_FTYPE_RRIP,
#endif
struct iso_mnt {
- int im_flags;
+ uint64_t im_flags;
struct mount *im_mountp;
struct cdev *im_dev;
diff --git a/sys/fs/msdosfs/msdosfsmount.h b/sys/fs/msdosfs/msdosfsmount.h
index 417923f..673095e 100644
--- a/sys/fs/msdosfs/msdosfsmount.h
+++ b/sys/fs/msdosfs/msdosfsmount.h
@@ -103,7 +103,7 @@ struct msdosfsmount {
u_int pm_fatdiv; /* offset computation */
u_int pm_curfat; /* current fat for FAT32 (0 otherwise) */
u_int *pm_inusemap; /* ptr to bitmap of in-use clusters */
- u_int pm_flags; /* see below */
+ uint64_t pm_flags; /* see below */
void *pm_u2w; /* Local->Unicode iconv handle */
void *pm_w2u; /* Unicode->Local iconv handle */
void *pm_u2d; /* Unicode->DOS iconv handle */
diff --git a/sys/fs/ntfs/ntfs.h b/sys/fs/ntfs/ntfs.h
index 4f6431f..8415222 100644
--- a/sys/fs/ntfs/ntfs.h
+++ b/sys/fs/ntfs/ntfs.h
@@ -250,7 +250,7 @@ struct ntfsmount {
uid_t ntm_uid;
gid_t ntm_gid;
mode_t ntm_mode;
- u_int ntm_flag;
+ uint64_t ntm_flag;
cn_t ntm_cfree;
struct ntvattrdef *ntm_ad;
int ntm_adnum;
diff --git a/sys/fs/smbfs/smbfs.h b/sys/fs/smbfs/smbfs.h
index 4be0a55..84c79a1 100644
--- a/sys/fs/smbfs/smbfs.h
+++ b/sys/fs/smbfs/smbfs.h
@@ -80,7 +80,7 @@ struct smbmount {
struct mount * sm_mp;
struct smbnode * sm_root;
struct ucred * sm_owner;
- u_int sm_flags;
+ uint64_t sm_flags;
long sm_nextino;
struct smb_share * sm_share;
/* struct simplelock sm_npslock;*/
diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c
index 358d673..584334a 100644
--- a/sys/kern/kern_jail.c
+++ b/sys/kern/kern_jail.c
@@ -540,8 +540,8 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
#ifdef INET6
int ip6s, redo_ip6;
#endif
- unsigned pr_flags, ch_flags;
- unsigned pr_allow, ch_allow, tallow;
+ uint64_t pr_allow, ch_allow, pr_flags, ch_flags;
+ unsigned tallow;
char numbuf[12];
error = priv_check(td, PRIV_JAIL_SET);
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index 5edf0f5..5d6892c 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1496,7 +1496,8 @@ vfs_getopts(struct vfsoptlist *opts, const char *name, int *error)
}
int
-vfs_flagopt(struct vfsoptlist *opts, const char *name, u_int *w, u_int val)
+vfs_flagopt(struct vfsoptlist *opts, const char *name, uint64_t *w,
+ uint64_t val)
{
struct vfsopt *opt;
diff --git a/sys/sys/mount.h b/sys/sys/mount.h
index d636607..c325734 100644
--- a/sys/sys/mount.h
+++ b/sys/sys/mount.h
@@ -166,8 +166,7 @@ struct mount {
int mnt_nvnodelistsize; /* (i) # of vnodes */
int mnt_writeopcount; /* (i) write syscalls pending */
int mnt_kern_flag; /* (i) kernel only flags */
- u_int mnt_flag; /* (i) flags shared with user */
- u_int mnt_xflag; /* (i) more flags shared with user */
+ uint64_t mnt_flag; /* (i) flags shared with user */
u_int mnt_noasync; /* (i) # noasync overrides */
struct vfsoptlist *mnt_opt; /* current mount options */
struct vfsoptlist *mnt_optnew; /* new options passed to fs */
@@ -224,43 +223,43 @@ void __mnt_vnode_markerfree(struct vnode **mvp, struct mount *mp);
/*
* User specifiable flags, stored in mnt_flag.
*/
-#define MNT_RDONLY 0x00000001 /* read only filesystem */
-#define MNT_SYNCHRONOUS 0x00000002 /* filesystem written synchronously */
-#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */
-#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */
-#define MNT_UNION 0x00000020 /* union with underlying filesystem */
-#define MNT_ASYNC 0x00000040 /* filesystem written asynchronously */
-#define MNT_SUIDDIR 0x00100000 /* special handling of SUID on dirs */
-#define MNT_SOFTDEP 0x00200000 /* soft updates being done */
-#define MNT_NOSYMFOLLOW 0x00400000 /* do not follow symlinks */
-#define MNT_GJOURNAL 0x02000000 /* GEOM journal support enabled */
-#define MNT_MULTILABEL 0x04000000 /* MAC support for individual objects */
-#define MNT_ACLS 0x08000000 /* ACL support enabled */
-#define MNT_NOATIME 0x10000000 /* disable update of file access time */
-#define MNT_NOCLUSTERR 0x40000000 /* disable cluster read */
-#define MNT_NOCLUSTERW 0x80000000 /* disable cluster write */
-#define MNT_NFS4ACLS 0x00000010
+#define MNT_RDONLY 0x0000000000000001ULL /* read only filesystem */
+#define MNT_SYNCHRONOUS 0x0000000000000002ULL /* fs written synchronously */
+#define MNT_NOEXEC 0x0000000000000004ULL /* can't exec from filesystem */
+#define MNT_NOSUID 0x0000000000000008ULL /* don't honor setuid fs bits */
+#define MNT_NFS4ACLS 0x0000000000000010ULL /* enable NFS version 4 ACLs */
+#define MNT_UNION 0x0000000000000020ULL /* union with underlying fs */
+#define MNT_ASYNC 0x0000000000000040ULL /* fs written asynchronously */
+#define MNT_SUIDDIR 0x0000000000100000ULL /* special SUID dir handling */
+#define MNT_SOFTDEP 0x0000000000200000ULL /* using soft updates */
+#define MNT_NOSYMFOLLOW 0x0000000000400000ULL /* do not follow symlinks */
+#define MNT_GJOURNAL 0x0000000002000000ULL /* GEOM journal support enabled */
+#define MNT_MULTILABEL 0x0000000004000000ULL /* MAC support for objects */
+#define MNT_ACLS 0x0000000008000000ULL /* ACL support enabled */
+#define MNT_NOATIME 0x0000000010000000ULL /* dont update file access time */
+#define MNT_NOCLUSTERR 0x0000000040000000ULL /* disable cluster read */
+#define MNT_NOCLUSTERW 0x0000000080000000ULL /* disable cluster write */
/*
* NFS export related mount flags.
*/
-#define MNT_EXRDONLY 0x00000080 /* exported read only */
-#define MNT_EXPORTED 0x00000100 /* filesystem is exported */
-#define MNT_DEFEXPORTED 0x00000200 /* exported to the world */
-#define MNT_EXPORTANON 0x00000400 /* use anon uid mapping for everyone */
-#define MNT_EXKERB 0x00000800 /* exported with Kerberos uid mapping */
-#define MNT_EXPUBLIC 0x20000000 /* public export (WebNFS) */
+#define MNT_EXRDONLY 0x0000000000000080ULL /* exported read only */
+#define MNT_EXPORTED 0x0000000000000100ULL /* filesystem is exported */
+#define MNT_DEFEXPORTED 0x0000000000000200ULL /* exported to the world */
+#define MNT_EXPORTANON 0x0000000000000400ULL /* anon uid mapping for all */
+#define MNT_EXKERB 0x0000000000000800ULL /* exported with Kerberos */
+#define MNT_EXPUBLIC 0x0000000020000000ULL /* public export (WebNFS) */
/*
* Flags set by internal operations,
* but visible to the user.
* XXX some of these are not quite right.. (I've never seen the root flag set)
*/
-#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */
-#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */
-#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */
-#define MNT_USER 0x00008000 /* mounted by a user */
-#define MNT_IGNORE 0x00800000 /* do not show entry in df */
+#define MNT_LOCAL 0x0000000000001000ULL /* filesystem is stored locally */
+#define MNT_QUOTA 0x0000000000002000ULL /* quotas are enabled on fs */
+#define MNT_ROOTFS 0x0000000000004000ULL /* identifies the root fs */
+#define MNT_USER 0x0000000000008000ULL /* mounted by a user */
+#define MNT_IGNORE 0x0000000000800000ULL /* do not show entry in df */
/*
* Mask of flags that are visible to statfs().
@@ -293,12 +292,12 @@ void __mnt_vnode_markerfree(struct vnode **mvp, struct mount *mp);
* XXX: MNT_BYFSID collides with MNT_ACLS, but because MNT_ACLS is only used for
* mount(2) and MNT_BYFSID is only used for unmount(2) it's harmless.
*/
-#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */
-#define MNT_DELEXPORT 0x00020000 /* delete export host lists */
-#define MNT_RELOAD 0x00040000 /* reload filesystem data */
-#define MNT_FORCE 0x00080000 /* force unmount or readonly change */
-#define MNT_SNAPSHOT 0x01000000 /* snapshot the filesystem */
-#define MNT_BYFSID 0x08000000 /* specify filesystem by ID. */
+#define MNT_UPDATE 0x0000000000010000ULL /* not real mount, just update */
+#define MNT_DELEXPORT 0x0000000000020000ULL /* delete export host lists */
+#define MNT_RELOAD 0x0000000000040000ULL /* reload filesystem data */
+#define MNT_FORCE 0x0000000000080000ULL /* force unmount or readonly */
+#define MNT_SNAPSHOT 0x0000000001000000ULL /* snapshot the filesystem */
+#define MNT_BYFSID 0x0000000008000000ULL /* specify filesystem by ID. */
#define MNT_CMDFLAGS (MNT_UPDATE | MNT_DELEXPORT | MNT_RELOAD | \
MNT_FORCE | MNT_SNAPSHOT | MNT_BYFSID)
/*
@@ -715,7 +714,8 @@ void vfs_event_signal(fsid_t *, u_int32_t, intptr_t);
void vfs_freeopts(struct vfsoptlist *opts);
void vfs_deleteopt(struct vfsoptlist *opts, const char *name);
int vfs_buildopts(struct uio *auio, struct vfsoptlist **options);
-int vfs_flagopt(struct vfsoptlist *opts, const char *name, u_int *w, u_int val);
+int vfs_flagopt(struct vfsoptlist *opts, const char *name, uint64_t *w,
+ uint64_t val);
int vfs_getopt(struct vfsoptlist *, const char *, void **, int *);
int vfs_getopt_pos(struct vfsoptlist *opts, const char *name);
char *vfs_getopts(struct vfsoptlist *, const char *, int *error);
OpenPOWER on IntegriCloud