diff options
author | pjd <pjd@FreeBSD.org> | 2009-09-17 14:58:21 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2009-09-17 14:58:21 +0000 |
commit | cd09e6e7af78c8fe28c01998631e299688c81400 (patch) | |
tree | e8fe225eac1f3fe2f18791d8b09541d757d17368 /sys/cddl | |
parent | 02353f41db3721885b027e8c15d9f828de62ba5c (diff) | |
download | FreeBSD-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.c | 3 |
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); |