summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/fs/dev/sdev_subr.c5
-rw-r--r--usr/src/uts/common/fs/dev/sdev_vnops.c5
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));
}