Merge branch 'linux-have-xdr' into refs/top-bases/linux-zfs-branch

This commit is contained in:
Brian Behlendorf 2009-03-11 14:44:59 -07:00
commit f39adcbb54
8 changed files with 8 additions and 50 deletions

View File

@ -729,13 +729,8 @@ zfs_send(zfs_handle_t *zhp, const char *fromsnap, const char *tosnap,
if (err)
return (err);
VERIFY(0 == nvlist_add_nvlist(hdrnv, "fss", fss));
#if defined(HAVE_XDR)
err = nvlist_pack(hdrnv, &packbuf, &buflen,
NV_ENCODE_XDR, 0);
#else
err = nvlist_pack(hdrnv, &packbuf, &buflen,
NV_ENCODE_NATIVE, 0);
#endif /* HAVE_XDR */
nvlist_free(hdrnv);
if (err) {
fsavl_destroy(fsavl);

View File

@ -100,9 +100,7 @@ typedef struct nvlist {
/* nvlist pack encoding */
#define NV_ENCODE_NATIVE 0
#if defined(HAVE_XDR)
#define NV_ENCODE_XDR 1
#endif
/* nvlist persistent unique name flags, stored in nvl_nvflags */
#define NV_UNIQUE_NAME 0x1

View File

@ -33,9 +33,7 @@
#include <sys/nvpair.h>
#include <sys/nvpair_impl.h>
#include <rpc/types.h>
#ifdef HAVE_XDR
#include <rpc/xdr.h>
#endif /* HAVE_XDR */
#if defined(_KERNEL) && !defined(_BOOT)
#include <sys/varargs.h>
@ -2193,9 +2191,7 @@ nvs_embedded_nvl_array(nvstream_t *nvs, nvpair_t *nvp, size_t *size)
}
static int nvs_native(nvstream_t *, nvlist_t *, char *, size_t *);
#if defined(HAVE_XDR)
static int nvs_xdr(nvstream_t *, nvlist_t *, char *, size_t *);
#endif /* HAVE_XDR */
/*
* Common routine for nvlist operations:
@ -2272,11 +2268,9 @@ nvlist_common(nvlist_t *nvl, char *buf, size_t *buflen, int encoding,
return (ENOTSUP);
err = nvs_native(&nvs, nvl, buf, buflen);
break;
#if defined(HAVE_XDR)
case NV_ENCODE_XDR:
err = nvs_xdr(&nvs, nvl, buf, buflen);
break;
#endif /* HAVE_XDR */
default:
err = ENOTSUP;
break;
@ -2764,7 +2758,6 @@ nvs_native(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
return (err);
}
#if defined(HAVE_XDR)
/*
* XDR encoding functions
*
@ -3251,7 +3244,6 @@ nvs_xdr(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
return (err);
}
#endif /* HAVE_XDR */
#if defined(_KERNEL) && defined(HAVE_SPL)
static int __init nvpair_init(void)

View File

@ -3764,14 +3764,9 @@ spa_sync_nvlist(spa_t *spa, uint64_t obj, nvlist_t *nv, dmu_tx_t *tx)
char *packed = NULL;
size_t bufsize;
size_t nvsize = 0;
int nv_encode = NV_ENCODE_NATIVE;
dmu_buf_t *db;
#if defined(HAVE_XDR)
nv_encode = NV_ENCODE_XDR;
#endif
VERIFY(nvlist_size(nv, &nvsize, nv_encode) == 0);
VERIFY(nvlist_size(nv, &nvsize, NV_ENCODE_XDR) == 0);
/*
* Write full (SPA_CONFIG_BLOCKSIZE) blocks of configuration
@ -3781,7 +3776,8 @@ spa_sync_nvlist(spa_t *spa, uint64_t obj, nvlist_t *nv, dmu_tx_t *tx)
bufsize = P2ROUNDUP(nvsize, SPA_CONFIG_BLOCKSIZE);
packed = kmem_alloc(bufsize, KM_SLEEP);
VERIFY(nvlist_pack(nv, &packed, &nvsize, nv_encode, KM_SLEEP) == 0);
VERIFY(nvlist_pack(nv, &packed, &nvsize, NV_ENCODE_XDR,
KM_SLEEP) == 0);
bzero(packed + nvsize, bufsize - nvsize);
dmu_write(spa->spa_meta_objset, obj, 0, bufsize, packed, tx);

View File

@ -153,7 +153,6 @@ spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl)
char *buf;
vnode_t *vp;
int oflags = FWRITE | FTRUNC | FCREAT | FOFFMAX;
int nv_encode = NV_ENCODE_NATIVE;
char *temp;
/*
@ -167,15 +166,13 @@ spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl)
/*
* Pack the configuration into a buffer.
*/
#if defined(HAVE_XDR)
nv_encode = NV_ENCODE_XDR;
#endif
VERIFY(nvlist_size(nvl, &buflen, nv_encode) == 0);
VERIFY(nvlist_size(nvl, &buflen, NV_ENCODE_XDR) == 0);
buf = kmem_alloc(buflen, KM_SLEEP);
temp = kmem_zalloc(MAXPATHLEN, KM_SLEEP);
VERIFY(nvlist_pack(nvl, &buf, &buflen, nv_encode, KM_SLEEP) == 0);
VERIFY(nvlist_pack(nvl, &buf, &buflen, NV_ENCODE_XDR,
KM_SLEEP) == 0);
/*
* Write the configuration to disk. We need to do the traditional

View File

@ -258,19 +258,11 @@ spa_history_log_sync(void *arg1, void *arg2, cred_t *cr, dmu_tx_t *tx)
history_str) == 0);
}
#if defined(HAVE_XDR)
VERIFY(nvlist_size(nvrecord, &reclen, NV_ENCODE_XDR) == 0);
record_packed = kmem_alloc(reclen, KM_SLEEP);
VERIFY(nvlist_pack(nvrecord, &record_packed, &reclen,
NV_ENCODE_XDR, KM_SLEEP) == 0);
#else
VERIFY(nvlist_size(nvrecord, &reclen, NV_ENCODE_NATIVE) == 0);
record_packed = kmem_alloc(reclen, KM_SLEEP);
VERIFY(nvlist_pack(nvrecord, &record_packed, &reclen,
NV_ENCODE_NATIVE, KM_SLEEP) == 0);
#endif
mutex_enter(&spa->spa_history_lock);
if (hap->ha_log_type == LOG_CMD_POOL_CREATE)

View File

@ -625,11 +625,7 @@ vdev_label_init(vdev_t *vd, uint64_t crtxg, vdev_labeltype_t reason)
buf = vp->vp_nvlist;
buflen = sizeof (vp->vp_nvlist);
#ifdef HAVE_XDR
error = nvlist_pack(label, &buf, &buflen, NV_ENCODE_XDR, KM_SLEEP);
#else
error = nvlist_pack(label, &buf, &buflen, NV_ENCODE_NATIVE, KM_SLEEP);
#endif
if (error != 0) {
nvlist_free(label);
zio_buf_free(vp, sizeof (vdev_phys_t));
@ -942,11 +938,7 @@ vdev_label_sync(zio_t *zio, vdev_t *vd, int l, uint64_t txg, int flags)
buf = vp->vp_nvlist;
buflen = sizeof (vp->vp_nvlist);
#ifdef HAVE_XDR
if (nvlist_pack(label, &buf, &buflen, NV_ENCODE_XDR, KM_SLEEP) == 0) {
#else
if (nvlist_pack(label, &buf, &buflen, NV_ENCODE_NATIVE, KM_SLEEP) == 0) {
#endif
for (; l < VDEV_LABELS; l += 2) {
vdev_label_write(zio, vd, l, vp,
offsetof(vdev_label_t, vl_vdev_phys),

View File

@ -275,7 +275,6 @@ retry:
char *packed;
dmu_buf_t *db;
int i = 0;
int nv_encode = NV_ENCODE_NATIVE;
if (rw == RW_READER && !rw_tryupgrade(&zfsvfs->z_fuid_lock)) {
rw_exit(&zfsvfs->z_fuid_lock);
@ -313,13 +312,10 @@ retry:
for (i = 0; i != retidx; i++)
nvlist_free(fuids[i]);
kmem_free(fuids, retidx * sizeof (void *));
#ifdef HAVE_XDR
nv_encode = NV_ENCODE_XDR;
#endif
VERIFY(nvlist_size(nvp, &nvsize, nv_encode) == 0);
VERIFY(nvlist_size(nvp, &nvsize, NV_ENCODE_XDR) == 0);
packed = kmem_alloc(nvsize, KM_SLEEP);
VERIFY(nvlist_pack(nvp, &packed, &nvsize,
nv_encode, KM_SLEEP) == 0);
NV_ENCODE_XDR, KM_SLEEP) == 0);
nvlist_free(nvp);
zfsvfs->z_fuid_size = nvsize;
dmu_write(zfsvfs->z_os, zfsvfs->z_fuid_obj, 0,