[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[linux-lvm] Scanning MD devices - bug or feature?



I have a problem where LVM fails to create VGs from PVs I make on newly
created MDs.
After looking in the code it looks as if LVM (1.0.8 BTW) is relying on a
device cache, so that newly created devices 
are not accessible. It means that to use an MD device bt LVM, I need to
create the MD device and reboot.

Digging in the code I found that lvm_dir_cache is calling _scan_devs
either with TRUE or FALSE, _scan_devs on 
false scans only /dev/loop and /dev/nb, it does not re-scan /dev/md. In
addition, lvmdiskscan relies on the cache as well.

My first solution was to remove the if - make it scan all the devices
all the time, but that would exclude /dev/loop and nb from the search.
I'm now thinking to add /dev/md to the _notprocdir table.

Another problem I see but need to further investigate is that my
/dev/partitions is so huge that it gets binary characters in it, and
also the proc implementation is not handling the spill over page size
properly.

Any ideas/comments would be appreciated.
Dan

------------------------------------------------------------------------
----------------------------------
/* devices *not* showing up in /proc/partitions must be scanned anyway
*/
static char *_noprocdir[] = {
        LVM_DIR_PREFIX "loop",
        LVM_DIR_PREFIX "nb",
        NULL
};

int lvm_dir_cache(dir_cache_t **dir_cache_ptr)
{
        int ret = 0;
        debug_enter("lvm_dir_cache -- CALLED\n");

        if (!dir_cache_ptr) {
                ret = -LVM_EPARAM;
                goto out;
        }

        if (!_dir_cache) {
                _scan_partitions();
                if(!_cache_size)
                        _scan_devs( TRUE);
                else
                        _scan_devs( FALSE);
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]