38 lines
925 B
C
38 lines
925 B
C
|
#include <libzfs.h>
|
||
|
#include <memory.h>
|
||
|
#include <string.h>
|
||
|
#include <stdio.h>
|
||
|
#include <sys/fs/zfs.h>
|
||
|
|
||
|
#include "common.h"
|
||
|
#include "zpool.h"
|
||
|
|
||
|
|
||
|
__uint64_t set_zpool_vdev_online(zpool_list_t *pool, const char *path, int flags) {
|
||
|
vdev_state_t newstate = VDEV_STATE_UNKNOWN;
|
||
|
zpool_vdev_online(pool->zph, path, flags, &newstate);
|
||
|
return newstate;
|
||
|
}
|
||
|
|
||
|
int set_zpool_vdev_offline(zpool_list_t *pool, const char *path, boolean_t istmp, boolean_t force) {
|
||
|
int ret = 0;
|
||
|
// if (force) {
|
||
|
// uint64_t guid = zpool_vdev_path_to_guid(pool->zph, path);
|
||
|
// vdev_aux_t aux;
|
||
|
// if (istmp == B_FALSE) {
|
||
|
// /* Force the fault to persist across imports */
|
||
|
// aux = VDEV_AUX_EXTERNAL_PERSIST;
|
||
|
// } else {
|
||
|
// aux = VDEV_AUX_EXTERNAL;
|
||
|
// }
|
||
|
|
||
|
// if (guid == 0 || zpool_vdev_fault(pool->zph, guid, aux) != 0)
|
||
|
// ret = 1;
|
||
|
// } else {
|
||
|
if (zpool_vdev_offline(pool->zph, path, istmp) != 0)
|
||
|
ret = 1;
|
||
|
// }
|
||
|
return ret;
|
||
|
}
|
||
|
|