Page MenuHomeFreeBSD

D20062.id56722.diff
No OneTemporary

D20062.id56722.diff

Index: sys/kern/kern_sendfile.c
===================================================================
--- sys/kern/kern_sendfile.c
+++ sys/kern/kern_sendfile.c
@@ -52,6 +52,8 @@
#include <sys/vnode.h>
#include <net/vnet.h>
+#include <netinet/in.h>
+#include <netinet/in_pcb.h>
#include <security/audit/audit.h>
#include <security/mac/mac_framework.h>
@@ -545,8 +547,9 @@
struct shmfd *shmfd;
struct sendfile_sync *sfs;
struct vattr va;
+ struct inpcb *inp;
off_t off, sbytes, rem, obj_size;
- int error, softerr, bsize, hdrlen;
+ int domain, error, softerr, bsize, hdrlen;
obj = NULL;
so = NULL;
@@ -742,6 +745,16 @@
refcount_init(&sfio->nios, 1);
sfio->so = so;
sfio->error = 0;
+ if ((flags & SF_NOCACHE) != 0 &&
+ (inp = sotoinpcb(so)) != NULL &&
+ (domain = inp->inp_numa_domain) != M_NODOM &&
+ obj->domain.dr_policy != DOMAINSET_PREF(domain) &&
+ obj->domain.dr_iter != domain) {
+ VM_OBJECT_WLOCK(obj);
+ obj->domain.dr_policy = DOMAINSET_PREF(domain);
+ obj->domain.dr_iter = domain;
+ VM_OBJECT_WUNLOCK(obj);
+ }
nios = sendfile_swapin(obj, sfio, off, space, npages, rhpages,
flags);

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 23, 5:01 PM (14 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35408881
Default Alt Text
D20062.id56722.diff (1 KB)

Event Timeline