kern/141305: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Wed Sep 15 10:40:03 UTC 2010
The following reply was made to PR kern/141305; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: kern/141305: commit references a PR
Date: Wed, 15 Sep 2010 10:31:35 +0000 (UTC)
Author: avg
Date: Wed Sep 15 10:31:27 2010
New Revision: 212650
URL: http://svn.freebsd.org/changeset/base/212650
Log:
tmpfs, zfs + sendfile: mark page bits as valid after populating it with data
Otherwise, adding insult to injury, in addition to double-caching of data
we would always copy the data into a vnode's vm object page from backend.
This is specific to sendfile case only (VOP_READ with UIO_NOCOPY).
PR: kern/141305
Reported by: Wiktor Niesiobedzki <bsd at vink.pl>
Reviewed by: alc
Tested by: tools/regression/sockets/sendfile
MFC after: 2 weeks
Modified:
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
head/sys/fs/tmpfs/tmpfs_vnops.c
Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Sep 15 10:18:18 2010 (r212649)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Sep 15 10:31:27 2010 (r212650)
@@ -498,6 +498,8 @@ again:
sched_unpin();
}
VM_OBJECT_LOCK(obj);
+ if (error == 0)
+ vm_page_set_valid(m, off, bytes);
vm_page_wakeup(m);
if (error == 0)
uio->uio_resid -= bytes;
Modified: head/sys/fs/tmpfs/tmpfs_vnops.c
==============================================================================
--- head/sys/fs/tmpfs/tmpfs_vnops.c Wed Sep 15 10:18:18 2010 (r212649)
+++ head/sys/fs/tmpfs/tmpfs_vnops.c Wed Sep 15 10:31:27 2010 (r212650)
@@ -562,6 +562,8 @@ lookupvpg:
sf_buf_free(sf);
sched_unpin();
VM_OBJECT_LOCK(vobj);
+ if (error == 0)
+ vm_page_set_valid(m, offset, tlen);
vm_page_wakeup(m);
VM_OBJECT_UNLOCK(vobj);
return (error);
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-fs
mailing list