svn commit: r363713 - head/sys/sys
Mateusz Guzik
mjg at FreeBSD.org
Thu Jul 30 22:13:16 UTC 2020
Author: mjg
Date: Thu Jul 30 22:13:15 2020
New Revision: 363713
URL: https://svnweb.freebsd.org/changeset/base/363713
Log:
fd: predict in fdrop
Modified:
head/sys/sys/file.h
Modified: head/sys/sys/file.h
==============================================================================
--- head/sys/sys/file.h Thu Jul 30 19:11:01 2020 (r363712)
+++ head/sys/sys/file.h Thu Jul 30 22:13:15 2020 (r363713)
@@ -279,21 +279,22 @@ int fgetvp_read(struct thread *td, int fd, cap_rights_
int fgetvp_write(struct thread *td, int fd, cap_rights_t *rightsp,
struct vnode **vpp);
-static __inline int
-_fnoop(void)
-{
-
- return (0);
-}
-
static __inline __result_use_check bool
fhold(struct file *fp)
{
return (refcount_acquire_checked(&fp->f_count));
}
-#define fdrop(fp, td) \
- (refcount_release(&(fp)->f_count) ? _fdrop((fp), (td)) : _fnoop())
+#define fdrop(fp, td) ({ \
+ struct file *_fp; \
+ int _error; \
+ \
+ _error = 0; \
+ _fp = (fp); \
+ if (__predict_false(refcount_release(&_fp->f_count))) \
+ _error = _fdrop(_fp, td); \
+ _error; \
+})
static __inline fo_rdwr_t fo_read;
static __inline fo_rdwr_t fo_write;
More information about the svn-src-all
mailing list