~ubuntu-branches/ubuntu/quantal/zfs-fuse/quantal

« back to all changes in this revision

Viewing changes to src/lib/libzfscommon/zfs_comutil.c

  • Committer: Bazaar Package Importer
  • Author(s): Mike Hommey, Mike Hommey, Seth Heeren
  • Date: 2010-06-30 18:03:52 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20100630180352-d3jq25ytbcl23q3y
Tags: 0.6.9-1
* New upstream release.

[ Mike Hommey ]
* debian/control:
  - Build depend on libssl-dev and libattr1-dev, now required to build.
  - Build depend on docbook-xml to avoid xsltproc I/O error loading
    docbook DTD.
  - Add suggestions for a NFS server and kpartx.
* debian/man/*, debian/copyright, debian/rules: Remove manual pages, they
  are now shipped upstream.
* debian/copyright: Change download link.
* src/SConstruct:
  - Add an optim option to the build system.
  - Add support for DESTDIR.
  - Force debug=1 to mean optim, no strip, no debug.
  - Use -ffunction-sections, -fdata-sections, and --gc-sections flags to
    reduce the binary sizes.
* src/lib/libumem/SConscript: Cleanup src/lib/libumem when cleaning up
  build directory.
* src/cmd/*/SConscript: Don't link zfs, zpool and zdb against libssl.
* src/lib/libumem/SConscript: Only build static libumem.
* src/lib/libumem/sol_compat.h:
  - Add atomic cas support for sparc.
  - Use atomic functions from libsolcompat in libumem on unsupported
    platforms.
* debian/rules:
  - Set optimization level in build system according to DEB_BUILD_OPTIONS.
  - Build with debug=1 to have unstripped binaries ; dh_strip will do the
    right thing.
  - Don't depend on the local location of the docbook XSLT stylesheets.
    Use the catalogged url in place of the full path.
  - Don't clean src/.sconsign.dblite and src/path.pyc.
  - Set all destination directories when installing with scons.
  - Install bash completion and zfsrc files.
  - Don't use scons cache when building.
* debian/prerm: Remove /var/lib/zfs/zpool.cache in prerm.
* debian/dirs: Create /etc/bash_completion.d.
* debian/watch: Fix watch file.
* debian/rules, debian/control, debian/compat: Switch to dh.
* debian/README.Debian: Update README.Debian.
* debian/zfs-fuse.man.xml: Update zfs-fuse manual page.
* debian/zfs-fuse.init: Start sharing datasets marked as such at daemon
  startup.
* debian/rules, debian/control: Use config.guess and config.sub from
  autotools-dev.

[ Seth Heeren ]
* debian/zfs-fuse.man.xml:
  Added notes on the precedence, zfsrc, commandline, initscript vs.
  /etc/default/zfs-fuse on some systems.
* debian/zfs-fuse.init, debian/zfs-fuse.default: Deprecating DAEMON_OPTS.
* debian/zfs-fuse.init:
  - Removing import -a -f.
  - Removing the now unnecessary 'sleep 2'.
  - Extended shutdown wait to allow for zfs-fuse daemon's own shutdown
    timeouts.
  - Re-ordered dubious PATH setting.
* debian/zfs-fuse.init: Move existing zpool.cache to new location if
  possible.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 * CDDL HEADER END
20
20
 */
21
21
/*
22
 
 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 
22
 * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
23
23
 * Use is subject to license terms.
24
24
 */
25
25
 
26
 
/* #pragma ident        "%Z%%M% %I%     %E% SMI" */
27
 
 
28
26
/*
29
27
 * This file is intended for functions that ought to be common between user
30
28
 * land (libzfs) and the kernel. When many common routines need to be shared
33
31
 
34
32
#if defined(_KERNEL)
35
33
#include <sys/systm.h>
 
34
#else
 
35
#include <string.h>
36
36
#endif
37
37
 
38
38
#include <sys/types.h>
39
39
#include <sys/fs/zfs.h>
 
40
#include <sys/int_limits.h>
40
41
#include <sys/nvpair.h>
41
42
 
42
43
/*
63
64
        }
64
65
        return (B_FALSE);
65
66
}
 
67
 
 
68
void
 
69
zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_policy_t *zrpp)
 
70
{
 
71
        nvlist_t *policy;
 
72
        nvpair_t *elem;
 
73
        char *nm;
 
74
 
 
75
        /* Defaults */
 
76
        zrpp->zrp_request = ZPOOL_NO_REWIND;
 
77
        zrpp->zrp_maxmeta = 0;
 
78
        zrpp->zrp_maxdata = UINT64_MAX;
 
79
        zrpp->zrp_txg = UINT64_MAX;
 
80
 
 
81
        if (nvl == NULL)
 
82
                return;
 
83
 
 
84
        elem = NULL;
 
85
        while ((elem = nvlist_next_nvpair(nvl, elem)) != NULL) {
 
86
                nm = nvpair_name(elem);
 
87
                if (strcmp(nm, ZPOOL_REWIND_POLICY) == 0) {
 
88
                        if (nvpair_value_nvlist(elem, &policy) == 0)
 
89
                                zpool_get_rewind_policy(policy, zrpp);
 
90
                        return;
 
91
                } else if (strcmp(nm, ZPOOL_REWIND_REQUEST) == 0) {
 
92
                        if (nvpair_value_uint32(elem, &zrpp->zrp_request) == 0)
 
93
                                if (zrpp->zrp_request & ~ZPOOL_REWIND_POLICIES)
 
94
                                        zrpp->zrp_request = ZPOOL_NO_REWIND;
 
95
                } else if (strcmp(nm, ZPOOL_REWIND_REQUEST_TXG) == 0) {
 
96
                        (void) nvpair_value_uint64(elem, &zrpp->zrp_txg);
 
97
                } else if (strcmp(nm, ZPOOL_REWIND_META_THRESH) == 0) {
 
98
                        (void) nvpair_value_uint64(elem, &zrpp->zrp_maxmeta);
 
99
                } else if (strcmp(nm, ZPOOL_REWIND_DATA_THRESH) == 0) {
 
100
                        (void) nvpair_value_uint64(elem, &zrpp->zrp_maxdata);
 
101
                }
 
102
        }
 
103
        if (zrpp->zrp_request == 0)
 
104
                zrpp->zrp_request = ZPOOL_NO_REWIND;
 
105
}