diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/fs/dev/sdev_subr.c | 5 | ||||
-rw-r--r-- | usr/src/uts/common/fs/dev/sdev_vnops.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/usr/src/uts/common/fs/dev/sdev_subr.c b/usr/src/uts/common/fs/dev/sdev_subr.c index ddca87ac61..24a94a8931 100644 --- a/usr/src/uts/common/fs/dev/sdev_subr.c +++ b/usr/src/uts/common/fs/dev/sdev_subr.c @@ -2643,10 +2643,7 @@ devname_readdir_func(vnode_t *vp, uio_t *uiop, cred_t *cred, int *eofp, if (ddv->sdev_state == SDEV_ZOMBIE) goto get_cache; - if (!SDEV_IS_GLOBAL(ddv)) { - /* make sure directory content is up to date */ - prof_filldir(ddv); - } else { + if (SDEV_IS_GLOBAL(ddv)) { map = sdev_get_map(ddv, 0); dirops = map ? map->dir_ops : NULL; fn = dirops ? dirops->devnops_readdir : NULL; diff --git a/usr/src/uts/common/fs/dev/sdev_vnops.c b/usr/src/uts/common/fs/dev/sdev_vnops.c index da579439ee..ebd1863058 100644 --- a/usr/src/uts/common/fs/dev/sdev_vnops.c +++ b/usr/src/uts/common/fs/dev/sdev_vnops.c @@ -1136,6 +1136,11 @@ sdev_readlink(struct vnode *vp, struct uio *uiop, struct cred *cred) static int sdev_readdir(struct vnode *dvp, struct uio *uiop, struct cred *cred, int *eofp) { + struct sdev_node *parent = VTOSDEV(dvp); + + ASSERT(parent); + if (!SDEV_IS_GLOBAL(parent)) + prof_filldir(parent); return (devname_readdir_func(dvp, uiop, cred, eofp, SDEV_BROWSE)); } |