diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2012-06-18 22:17:28 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2012-06-18 22:17:28 +0000 |
commit | 24def143f7e068fffdacb2e1e4f46941b4ce5dec (patch) | |
tree | c435e72adcc3d3f414fe21dc019ac70b87d618d2 /sys/fs/devfs/devfs_rule.c | |
parent | 4eede7506a622bcd2565763d6252acab3158d730 (diff) | |
download | FreeBSD-src-24def143f7e068fffdacb2e1e4f46941b4ce5dec.zip FreeBSD-src-24def143f7e068fffdacb2e1e4f46941b4ce5dec.tar.gz |
Fix the NFSv4 client for the case where mmap'd files are
written, but not msync'd by a process. A VOP_PUTPAGES()
called when VOP_RECLAIM() happens will usually fail, since
the NFSv4 Open has already been closed by VOP_INACTIVE().
Add a vm_object_page_clean() call to the NFSv4 client's
VOP_INACTIVE(), so that the write happens before the NFSv4
Open is closed. kib@ suggested using vgone() instead and
I will explore this, but this patch fixes things in the
meantime. For some reason, the VOP_PUTPAGES() is still
attaempted in VOP_RECLAIM(), but having this fail doesn't
cause any problems except a "stateid0 in write" being logged.
Reviewed by: kib
MFC after: 1 week
Diffstat (limited to 'sys/fs/devfs/devfs_rule.c')
0 files changed, 0 insertions, 0 deletions