summaryrefslogtreecommitdiffstats
path: root/sys/cddl
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2009-09-17 14:58:21 +0000
committerpjd <pjd@FreeBSD.org>2009-09-17 14:58:21 +0000
commitcd09e6e7af78c8fe28c01998631e299688c81400 (patch)
treee8fe225eac1f3fe2f18791d8b09541d757d17368 /sys/cddl
parent02353f41db3721885b027e8c15d9f828de62ba5c (diff)
downloadFreeBSD-src-cd09e6e7af78c8fe28c01998631e299688c81400.zip
FreeBSD-src-cd09e6e7af78c8fe28c01998631e299688c81400.tar.gz
Purge namecache for the file system being rolled back, so it doesn't point at
invalid vnodes after the rollback resulting in EIO errors when trying to access files which are in the namecache. Reported by: des MFC after: 3 days
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
index 080643a..160fc24 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
@@ -2354,6 +2354,9 @@ zfs_ioc_rollback(zfs_cmd_t *zc)
if (error == 0) {
int resume_err;
+#ifdef FREEBSD_NAMECACHE
+ cache_purgevfs(zfsvfs->z_vfs);
+#endif
ASSERT(strcmp(osname, zc->zc_name) == 0);
error = dmu_objset_rollback(os);
resume_err = zfs_resume_fs(zfsvfs, osname, mode);
OpenPOWER on IntegriCloud