Project

General

Profile

Actions

Bug #6174

closed

/dev/zvol does not show pool directories

Added by Robert Mustacchi over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
kernel
Start date:
2015-08-29
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

Currently the devzvol code caches a list of all the zpools on the system. It gets this list by doing an LDI ioctl against /dev/zfs. This code runs on the first readdir to /dev/zvol after boot.

If the first thing that does readdir on /dev/zvol is a non-global zone with no delegated datasets, it will return an empty list of zpools (since it can see none). Then this will be cached globally, affecting all other zones as well.

We have a couple of options here:

  • Make sure the zpool list always gets the full list of system pools (it will be culled to the zone's accessible subset anyway later)
  • Make the cache scoped to per-zone or per-mount (seems pretty messy, there's currently not enough context at vfs mount time)
  • Drop the caching altogether (probably not acceptable, though some measurements might be nice)

Went for the approach of making zpool list always get full system list, by doing the ldi ioctl from a taskq.

Actions #1

Updated by Electric Monk over 6 years ago

  • Status changed from New to Closed

git commit 0ad555ad6a787635be8c8a424168dc59cfbce6c7

commit  0ad555ad6a787635be8c8a424168dc59cfbce6c7
Author: Alex Wilson <alex.wilson@joyent.com>
Date:   2015-09-02T00:28:54.000Z

    6174 /dev/zvol does not show pool directories
    Reviewed by: Robert Mustacchi <rm@joyent.com>
    Reviewed by: Jason King <jason.brian.king@gmail.com>
    Approved by: Dan McDonald <danmcd@omniti.com>

Actions

Also available in: Atom PDF