Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F147401012
D49651.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D49651.id.diff
View Options
diff --git a/sys/compat/freebsd32/freebsd32.h b/sys/compat/freebsd32/freebsd32.h
--- a/sys/compat/freebsd32/freebsd32.h
+++ b/sys/compat/freebsd32/freebsd32.h
@@ -214,7 +214,7 @@
ino_t st_ino;
nlink_t st_nlink;
mode_t st_mode;
- uint16_t st_padding0;
+ uint16_t st_bsdflags;
uid_t st_uid;
gid_t st_gid;
uint32_t st_padding1;
diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c
--- a/sys/compat/freebsd32/freebsd32_misc.c
+++ b/sys/compat/freebsd32/freebsd32_misc.c
@@ -2309,8 +2309,8 @@
CP(*in, *out, st_flags);
CP(*in, *out, st_gen);
CP(*in, *out, st_filerev);
+ CP(*in, *out, st_bsdflags);
TS_CP(*in, *out, st_birthtim);
- out->st_padding0 = 0;
out->st_padding1 = 0;
#ifdef __STAT32_TIME_T_EXT
out->st_atim_ext = 0;
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -1618,6 +1618,7 @@
AUDIT_ARG_FILE(td->td_proc, fp);
sbp->st_filerev = 0;
+ sbp->st_bsdflags = 0;
error = fo_stat(fp, sbp, td->td_ucred);
fdrop(fp, td);
#ifdef __STAT_TIME_T_EXT
diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c
--- a/sys/kern/vfs_default.c
+++ b/sys/kern/vfs_default.c
@@ -1513,6 +1513,7 @@
vap->va_gen = 0;
vap->va_rdev = NODEV;
vap->va_filerev = 0;
+ vap->va_bsdflags = 0;
error = VOP_GETATTR(vp, vap, a->a_active_cred);
if (error)
@@ -1590,6 +1591,7 @@
sb->st_blocks = vap->va_bytes / S_BLKSIZE;
sb->st_gen = vap->va_gen;
sb->st_filerev = vap->va_filerev;
+ sb->st_bsdflags = vap->va_bsdflags;
out:
return (vop_stat_helper_post(a, error));
}
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1202,6 +1202,7 @@
vap->va_gen = VNOVAL;
vap->va_vaflags = 0;
vap->va_filerev = VNOVAL;
+ vap->va_bsdflags = 0;
}
/*
diff --git a/sys/sys/stat.h b/sys/sys/stat.h
--- a/sys/sys/stat.h
+++ b/sys/sys/stat.h
@@ -159,7 +159,7 @@
ino_t st_ino; /* inode's number */
nlink_t st_nlink; /* number of hard links */
mode_t st_mode; /* inode protection mode */
- __int16_t st_padding0;
+ __int16_t st_bsdflags; /* misc system flags */
uid_t st_uid; /* user ID of the file's owner */
gid_t st_gid; /* group ID of the file's group */
__int32_t st_padding1;
@@ -340,6 +340,9 @@
#define SF_NOUNLINK 0x00100000 /* file may not be removed or renamed */
#define SF_SNAPSHOT 0x00200000 /* snapshot inode */
+/* st_bsdflags */
+#define SFBSD_NAMEDATTR 0x0001 /* file is named attribute or dir */
+
#ifdef _KERNEL
/*
* Shorthand abbreviations of above.
diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h
--- a/sys/sys/vnode.h
+++ b/sys/sys/vnode.h
@@ -283,7 +283,7 @@
struct vattr {
__enum_uint8(vtype) va_type; /* vnode type (for create) */
u_short va_mode; /* files access mode and type */
- u_short va_padding0;
+ uint16_t va_bsdflags; /* same as st_bsdflags from stat(2) */
uid_t va_uid; /* owner user id */
gid_t va_gid; /* owner group id */
nlink_t va_nlink; /* number of references to file */
@@ -988,10 +988,10 @@
AUDIT_ARG_VNODE1(ap->a_vp); \
_error = mac_vnode_check_stat(_ap->a_active_cred, _ap->a_file_cred, _ap->a_vp);\
if (__predict_true(_error == 0)) { \
- ap->a_sb->st_padding0 = 0; \
ap->a_sb->st_padding1 = 0; \
bzero(_ap->a_sb->st_spare, sizeof(_ap->a_sb->st_spare)); \
ap->a_sb->st_filerev = 0; \
+ ap->a_sb->st_bsdflags = 0; \
} \
_error; \
})
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Mar 11, 4:34 PM (3 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29528698
Default Alt Text
D49651.id.diff (3 KB)
Attached To
Mode
D49651: stat(2): add st_bsdflags field
Attached
Detach File
Event Timeline
Log In to Comment