Print this page
OS-5343 dockerinit gets stuck in zfd_ready, zfd devices not showing up after > 1 hour
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>

*** 20,30 **** */ /* * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. */ /* ! * Copyright (c) 2013, Joyent, Inc. All rights reserved. */ /* * vnode ops for the /dev filesystem * --- 20,30 ---- */ /* * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. */ /* ! * Copyright 2016, Joyent, Inc. */ /* * vnode ops for the /dev filesystem *
*** 862,871 **** --- 862,874 ---- "disk %s\n", nm, parent->sdev_path)); error = 0; } } + if (error == 0) + i_ddi_di_cache_invalidate(); + return (error); } /* * Some restrictions for this file system:
*** 1186,1195 **** --- 1189,1199 ---- sdev_update_timestamps(SDEVTOV(self), kcred, AT_CTIME|AT_MTIME|AT_ATIME); sdev_update_timestamps(dvp, kcred, AT_MTIME|AT_ATIME); if (SDEV_IS_GLOBAL(parent)) atomic_inc_ulong(&parent->sdev_gdir_gen); + i_ddi_di_cache_invalidate(); /* wake up other threads blocked on looking up this node */ mutex_enter(&self->sdev_lookup_lock); SDEV_UNBLOCK_OTHERS(self, SDEV_LOOKUP); mutex_exit(&self->sdev_lookup_lock);
*** 1258,1267 **** --- 1262,1272 ---- sdev_update_timestamps(SDEVTOV(self), kcred, AT_CTIME|AT_MTIME|AT_ATIME); sdev_update_timestamps(dvp, kcred, AT_MTIME|AT_ATIME); if (SDEV_IS_GLOBAL(parent)) atomic_inc_ulong(&parent->sdev_gdir_gen); + i_ddi_di_cache_invalidate(); /* wake up other threads blocked on looking up this node */ mutex_enter(&self->sdev_lookup_lock); SDEV_UNBLOCK_OTHERS(self, SDEV_LOOKUP); mutex_exit(&self->sdev_lookup_lock);
*** 1373,1382 **** --- 1378,1390 ---- if (error == EBUSY) error = 0; } + if (error == 0) + i_ddi_di_cache_invalidate(); + return (error); } /* * read the contents of a symbolic link