]> sourceware.org Git - lvm2.git/commitdiff
Convert the straight instances of vg_lock_and_read to new vg_read(_for_update).
authorDave Wysochanski <dwysocha@redhat.com>
Fri, 26 Jun 2009 09:47:36 +0000 (09:47 +0000)
committerDave Wysochanski <dwysocha@redhat.com>
Fri, 26 Jun 2009 09:47:36 +0000 (09:47 +0000)
Sun May  3 11:40:51 CEST 2009  Petr Rockai <me@mornfall.net>
  * Convert the straight instances of vg_lock_and_read to new vg_read(_for_update).

Author: Petr Rockai <prockai@redhat.com>
Committer: Dave Wysochanski <dwysocha@redhat.com>

13 files changed:
WHATS_NEW
tools/lvconvert.c
tools/lvcreate.c
tools/lvrename.c
tools/lvresize.c
tools/polldaemon.c
tools/pvchange.c
tools/pvdisplay.c
tools/pvmove.c
tools/pvresize.c
tools/reporter.c
tools/vgextend.c
tools/vgmerge.c

index 35b22d302b1e444e55710b023aff0aaa02cb4c4f..9638dc25103ac34c897898baaf2a04bacabec944 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.48 - 
 ===============================
+  Replace use of vg_lock_and_read with vg_read/vg_read_for_update.
   Abort if automatic metadata correction fails when reading VG to update it.
   Explicitly request fallback to default major number in device mapper.
   Ignore suspended devices during repair.
index e2afd780d09657c4f8e70a60fa0be129e113e6e8..e2285fdc2bd6f0b8667200a7debd3b633fe1566f 100644 (file)
@@ -239,13 +239,8 @@ static struct volume_group *_get_lvconvert_vg(struct cmd_context *cmd,
 {
        dev_close_all();
 
-       /*
-        * uuid is here LV uuid, but vg_read will use only first part.
-        */
-        return vg_lock_and_read(cmd, extract_vgname(cmd, lv_name),
-                               uuid, LCK_VG_WRITE,
-                               CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                               CORRECT_INCONSISTENT | FAIL_INCONSISTENT);
+        return vg_read_for_update(cmd, extract_vgname(cmd, lv_name),
+                                 NULL, 0);
 }
 
 static struct logical_volume *_get_lvconvert_lv(struct cmd_context *cmd __attribute((unused)),
@@ -938,10 +933,9 @@ int lvconvert(struct cmd_context * cmd, int argc, char **argv)
 
        log_verbose("Checking for existing volume group \"%s\"", lp.vg_name);
 
-       if (!(vg = vg_lock_and_read(cmd, lp.vg_name, NULL, LCK_VG_WRITE,
-                                   CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                   CORRECT_INCONSISTENT | FAIL_INCONSISTENT)))
-               goto out;
+       vg = vg_read_for_update(cmd, lp.vg_name, NULL, 0);
+       if (vg_read_error(vg))
+               return ECMD_FAILED;
 
        if (!(lvl = find_lv_in_vg(vg, lp.lv_name))) {
                log_error("Logical volume \"%s\" not found in "
index 37d30c69a979c7d2610507d2d3df175c5a3fe29d..030aa0c9a938cdd3143777f3beba35cb7ddc502b 100644 (file)
@@ -994,9 +994,8 @@ int lvcreate(struct cmd_context *cmd, int argc, char **argv)
                return EINVALID_CMD_LINE;
 
        log_verbose("Finding volume group \"%s\"", lp.vg_name);
-       if (!(vg = vg_lock_and_read(cmd, lp.vg_name, NULL, LCK_VG_WRITE,
-                                   CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                   CORRECT_INCONSISTENT | FAIL_INCONSISTENT)))
+       vg = vg_read_for_update(cmd, lp.vg_name, NULL, 0);
+       if (vg_read_error(vg))
                return ECMD_FAILED;
 
        if (!_lvcreate(cmd, vg, &lp))
index b5d3b383267e5dd4871ee5e28f4470f70947f03d..53ea1165ca2f3a63ed76997f8f1d4c8cb15f92a3 100644 (file)
@@ -102,9 +102,8 @@ int lvrename(struct cmd_context *cmd, int argc, char **argv)
        }
 
        log_verbose("Checking for existing volume group \"%s\"", vg_name);
-       if (!(vg = vg_lock_and_read(cmd, vg_name, NULL, LCK_VG_WRITE,
-                                   CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                   CORRECT_INCONSISTENT | FAIL_INCONSISTENT)))
+       vg = vg_read_for_update(cmd, vg_name, NULL, 0);
+       if (vg_read_error(vg))
                return ECMD_FAILED;
 
        if (!(lvl = find_lv_in_vg(vg, lv_name_old))) {
index 1c0f5707af30bf7c5668e25cc7656758def1607d..b55879218105df4854cd6a7be9c599670e93b9c8 100644 (file)
@@ -671,9 +671,8 @@ int lvresize(struct cmd_context *cmd, int argc, char **argv)
                return EINVALID_CMD_LINE;
 
        log_verbose("Finding volume group %s", lp.vg_name);
-       if (!(vg = vg_lock_and_read(cmd, lp.vg_name, NULL, LCK_VG_WRITE,
-                                   CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                   CORRECT_INCONSISTENT | FAIL_INCONSISTENT))) {
+       vg = vg_read_for_update(cmd, lp.vg_name, NULL, 0);
+       if (vg_read_error(vg)) {
                stack;
                return ECMD_FAILED;
        }
index 1adb521ee99f1cbfe59a156a78f1adc507a9d098..bdfd3de772cde0d2051765fae9df40dc92706580 100644 (file)
@@ -147,7 +147,8 @@ static int _wait_for_single_mirror(struct cmd_context *cmd, const char *name, co
                }
 
                /* Locks the (possibly renamed) VG again */
-               if (!(vg = parms->poll_fns->get_copy_vg(cmd, name, uuid))) {
+               vg = parms->poll_fns->get_copy_vg(cmd, name);
+               if (vg_read_error(vg)) {
                        log_error("ABORTING: Can't reread VG for %s", name);
                        /* What more could we do here? */
                        return 0;
index 98fe2f27d6fe7a8de1fcce41e631cf34edd764f7..1c9d39447e40366e04b6e31a0f55cd6e601f4974 100644 (file)
@@ -57,9 +57,8 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv,
 
                log_verbose("Finding volume group %s of physical volume %s",
                            vg_name, pv_name);
-               if (!(vg = vg_lock_and_read(cmd, vg_name, NULL, LCK_VG_WRITE,
-                                           CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                           CORRECT_INCONSISTENT | FAIL_INCONSISTENT)))
+               vg = vg_read_for_update(cmd, vg_name, NULL, 0);
+               if (vg_read_error(vg))
                        return_0;
 
                if (!(pvl = find_pv_in_vg(vg, pv_name))) {
index 406e6310b3ee7b94af5c993ddfb7dc288c625c30..c8c4a88462d950624409f7dbb8fe4dbb6c603879 100644 (file)
@@ -29,8 +29,8 @@ static int _pvdisplay_single(struct cmd_context *cmd,
 
        if (!is_orphan(pv) && !vg) {
                vg_name = pv_vg_name(pv);
-               if (!(vg = vg_lock_and_read(cmd, vg_name, (char *)&pv->vgid,
-                                           LCK_VG_READ, CLUSTERED, 0))) {
+               vg = vg_read(cmd, vg_name, (char *)&pv->vgid, 0);
+               if (vg_read_error(vg)) {
                        log_error("Skipping volume group %s", vg_name);
                        /* FIXME If CLUSTERED should return ECMD_PROCESSED here */
                        return ECMD_FAILED;
index 3d376e6b105ccecc3a91d2f52294cf1403fcd445..d288e6f4ff049120c4a18fcc3db4af2911790098 100644 (file)
@@ -89,16 +89,9 @@ static const char *_extract_lvname(struct cmd_context *cmd, const char *vgname,
 
 static struct volume_group *_get_vg(struct cmd_context *cmd, const char *vgname)
 {
-       struct volume_group *vg;
-
        dev_close_all();
 
-       if (!(vg = vg_lock_and_read(cmd, vgname, NULL, LCK_VG_WRITE,
-                                   CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                   CORRECT_INCONSISTENT | FAIL_INCONSISTENT)))
-                return NULL;
-
-       return vg;
+       return vg_read_for_update(cmd, vgname, NULL, 0);
 }
 
 /* Create list of PVs for allocation of replacement extents */
@@ -392,7 +385,8 @@ static int _set_up_pvmove(struct cmd_context *cmd, const char *pv_name,
        /* Read VG */
        log_verbose("Finding volume group \"%s\"", pv_vg_name(pv));
 
-       if (!(vg = _get_vg(cmd, pv_vg_name(pv)))) {
+       vg = _get_vg(cmd, pv_vg_name(pv));
+       if (vg_read_error(vg)) {
                stack;
                return ECMD_FAILED;
        }
index 3b5f14930f6db20659b5394523e1ddb2b74e887a..82c79368b8dbc51e5eb9e00c4f6d49ac4034fa3b 100644 (file)
@@ -29,7 +29,6 @@ static int _pv_resize_single(struct cmd_context *cmd,
                             const uint64_t new_size)
 {
        struct pv_list *pvl;
-       int consistent = 1;
        uint64_t size = 0;
        uint32_t new_pe_count = 0;
        int r = 0;
@@ -59,19 +58,9 @@ static int _pv_resize_single(struct cmd_context *cmd,
        } else {
                vg_name = pv_vg_name(pv);
 
-               if (!lock_vol(cmd, vg_name, LCK_VG_WRITE)) {
-                       log_error("Can't get lock for %s", pv_vg_name(pv));
-                       return 0;
-               }
-
-               if (!(vg = vg_read_internal(cmd, vg_name, NULL, &consistent))) {
-                       unlock_vg(cmd, vg_name);
-                       log_error("Unable to find volume group of \"%s\"",
-                                 pv_name);
-                       return 0;
-               }
+               vg = vg_read_for_update(cmd, vg_name, NULL, 0);
 
-               if (!vg_check_status(vg, CLUSTERED | EXPORTED_VG | LVM_WRITE))
+               if (vg_read_error(vg))
                        goto bad;
 
                if (!(pvl = find_pv_in_vg(vg, pv_name))) {
index d50d586a78b15c2882a3401bfd5c40165ab63fc9..1e352b51dc1a7dd382dfa6015f1b5956450d4cd4 100644 (file)
@@ -132,8 +132,8 @@ static int _pvs_single(struct cmd_context *cmd, struct volume_group *vg,
        if (is_pv(pv) && !is_orphan(pv) && !vg) {
                vg_name = pv_vg_name(pv);
 
-               if (!(vg = vg_lock_and_read(cmd, vg_name, (char *)&pv->vgid,
-                                           LCK_VG_READ, CLUSTERED, 0))) {
+               vg = vg_read(cmd, vg_name, (char *)&pv->vgid, 0);
+               if (vg_read_error(vg)) {
                        log_error("Skipping volume group %s", vg_name);
                        return ECMD_FAILED;
                }
index 4b2044c5f61010a0fbe9bd6f1a62af7a99a4baff..aeb85ceb0bef78cf7f211c341536aa85707aa08a 100644 (file)
@@ -42,13 +42,12 @@ int vgextend(struct cmd_context *cmd, int argc, char **argv)
        }
 
        log_verbose("Checking for volume group \"%s\"", vg_name);
-       if (!(vg = vg_lock_and_read(cmd, vg_name, NULL, LCK_VG_WRITE,
-                                   CLUSTERED | EXPORTED_VG |
-                                   LVM_WRITE | RESIZEABLE_VG,
-                                   CORRECT_INCONSISTENT | FAIL_INCONSISTENT))) {
-               unlock_vg(cmd, VG_ORPHANS);
+       vg = vg_read_for_update(cmd, vg_name, NULL,
+                               READ_REQUIRE_RESIZEABLE | LOCK_NONBLOCKING);
+       if (vg_read_error(vg)) {
+               unlock_vg(cmd, VG_ORPHANS);
                return ECMD_FAILED;
-        }
+       }
 /********** FIXME
        log_print("maximum logical volume size is %s",
                  (dummy = lvm_show_size(LVM_LV_SIZE_MAX(vg) / 2, LONG)));
index f5072193e79d5f63a5f23535cb87d6defa72e1b0..23b95a471944effc2aa480da6048974cc026b54d 100644 (file)
@@ -28,17 +28,15 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to,
        }
 
        log_verbose("Checking for volume group \"%s\"", vg_name_to);
-       if (!(vg_to = vg_lock_and_read(cmd, vg_name_to, NULL, LCK_VG_WRITE,
-                                      CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                      CORRECT_INCONSISTENT | FAIL_INCONSISTENT)))
+       vg_to = vg_read_for_update(cmd, vg_name_to, NULL, 0);
+       if (vg_read_error(vg_to))
                 return ECMD_FAILED;
 
        log_verbose("Checking for volume group \"%s\"", vg_name_from);
-       if (!(vg_from = vg_lock_and_read(cmd, vg_name_from, NULL,
-                                        LCK_VG_WRITE,
-                                        CLUSTERED | EXPORTED_VG | LVM_WRITE,
-                                        CORRECT_INCONSISTENT | FAIL_INCONSISTENT))) {
-               unlock_and_release_vg(cmd, vg_to, vg_name_to);
+       vg_from = vg_read_for_update(cmd, vg_name_from, NULL,
+                                    LOCK_NONBLOCKING);
+       if (vg_read_error(vg_from)) {
+               unlock_release_vg(cmd, vg_to, vg_name_to);
                return ECMD_FAILED;
        }
 
This page took 0.055559 seconds and 5 git commands to generate.