summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_subr.c
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2012-01-17 01:08:01 +0000
committermckusick <mckusick@FreeBSD.org>2012-01-17 01:08:01 +0000
commitaf2e331939df2a83069ad4a6f5ab17eea9f82e8b (patch)
treed86ee8d3b7ab24d269286610b64ea734ff3b46d3 /sys/kern/vfs_subr.c
parentbf2ee27f25b4986447b996be48d5f5ce77c3ec40 (diff)
downloadFreeBSD-src-af2e331939df2a83069ad4a6f5ab17eea9f82e8b.zip
FreeBSD-src-af2e331939df2a83069ad4a6f5ab17eea9f82e8b.tar.gz
Make sure all intermediate variables holding mount flags (mnt_flag)
and that all internal kernel calls passing mount flags are declared as uint64_t so that flags in the top 32-bits are not lost. MFC after: 2 weeks
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r--sys/kern/vfs_subr.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 307aec3..ee383ee 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -2836,6 +2836,7 @@ DB_SHOW_COMMAND(mount, db_show_mount)
struct statfs *sp;
struct vnode *vp;
char buf[512];
+ uint64_t mflags;
u_int flags;
if (!have_addr) {
@@ -2857,13 +2858,13 @@ DB_SHOW_COMMAND(mount, db_show_mount)
mp->mnt_stat.f_mntonname, mp->mnt_stat.f_fstypename);
buf[0] = '\0';
- flags = mp->mnt_flag;
+ mflags = mp->mnt_flag;
#define MNT_FLAG(flag) do { \
- if (flags & (flag)) { \
+ if (mflags & (flag)) { \
if (buf[0] != '\0') \
strlcat(buf, ", ", sizeof(buf)); \
strlcat(buf, (#flag) + 4, sizeof(buf)); \
- flags &= ~(flag); \
+ mflags &= ~(flag); \
} \
} while (0)
MNT_FLAG(MNT_RDONLY);
@@ -2901,11 +2902,11 @@ DB_SHOW_COMMAND(mount, db_show_mount)
MNT_FLAG(MNT_SNAPSHOT);
MNT_FLAG(MNT_BYFSID);
#undef MNT_FLAG
- if (flags != 0) {
+ if (mflags != 0) {
if (buf[0] != '\0')
strlcat(buf, ", ", sizeof(buf));
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
- "0x%08x", flags);
+ "0x%016jx", mflags);
}
db_printf(" mnt_flag = %s\n", buf);
OpenPOWER on IntegriCloud