diff options
author | rwatson <rwatson@FreeBSD.org> | 2001-03-31 16:20:05 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2001-03-31 16:20:05 +0000 |
commit | cb4f33ea3159d458714cc82ae47bdeca7b9d636f (patch) | |
tree | 6c91438e0bae4ef89921aa2478673f15ddd9b7e3 /sys/kern/syscalls.master | |
parent | 1d52622861ade01fba488110e63ed8ba868cfcdf (diff) | |
download | FreeBSD-src-cb4f33ea3159d458714cc82ae47bdeca7b9d636f.zip FreeBSD-src-cb4f33ea3159d458714cc82ae47bdeca7b9d636f.tar.gz |
o Introduce extattr_{delete,get,set}_fd() to allow extended attribute
operations on file descriptors, which complement the existing set of
calls, extattr_{delete,get,set}_file() which act on paths. In doing
so, restructure the system call implementation such that the two sets
of functions share most of the relevant code, rather than duplicating
it. This pushes the vnode locking into the shared code, but keeps
the copying in of some arguments in the system call code. Allowing
access via file descriptors reduces the opportunity for race
conditions when managing extended attributes.
Obtained from: TrustedBSD Project
Diffstat (limited to 'sys/kern/syscalls.master')
-rw-r--r-- | sys/kern/syscalls.master | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index 4130ff6..aec2ea6 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -533,3 +533,11 @@ 368 STD BSD { int __cap_set_fd(int fd, struct cap *cap_p); } 369 STD BSD { int __cap_set_file(const char *path_p, struct cap *cap_p); } 370 NODEF NOHIDE lkmressys lkmressys nosys_args int +371 STD BSD { int extattr_set_fd(int fd, int attrnamespace, \ + const char *attrname, struct iovec *iovp, \ + int iovcnt); } +372 STD BSD { int extattr_get_fd(int fd, int attrnamespace, \ + const char *attrname, struct iovec *iovp, \ + int iovcnt); } +373 STD BSD { int extattr_delete_fd(int fd, int attrnamespace, \ + const char *attrname); } |