]> sourceware.org Git - lvm2.git/commitdiff
Fix lv_info open_count test
authorZdenek Kabelac <zkabelac@redhat.com>
Fri, 14 Oct 2011 13:23:47 +0000 (13:23 +0000)
committerZdenek Kabelac <zkabelac@redhat.com>
Fri, 14 Oct 2011 13:23:47 +0000 (13:23 +0000)
When verify_udev_operations was disable, code for stacking fs operation for
lvm links was completely disable - but this code was also used for collecting
information, that a new node is being created.

Add a new flag which is set when a creation of lv symlinks is requested which
should restore old behaviour of lv_info function, that has called fs_sync()
before quere for open count on device.

WHATS_NEW
lib/activate/dev_manager.c
lib/activate/fs.c
lib/activate/fs.h

index a03e71a824cd561c0db989129fbd2408bc0c0aa2..ec5f02380b9b99894f0f9fcfaea5d95c799ba996 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,6 +1,7 @@
 Version 2.02.89 - 
 ==================================
-  Simplify code for lvm worker thread in clvmd.
+  Fix lv_info open_count test for disabled verify_udev_operations (2.02.86).
+  Simplify code for lvm worker thread in clvmd.                     
   Use pthread_barrier to synchronize clvmd threads at startup.
   Limit clvmd's thread size to 128KiB.
   Reduce default preallocated stack size to 64KiB.
index fb269e429c78c8dcc322f395cc3eb85cfc83825f..a9a1b610dd19f85569805d03713827d8cb88997a 100644 (file)
@@ -1746,8 +1746,10 @@ static int _create_lv_symlinks(struct dev_manager *dm, struct dm_tree_node *root
        int r = 1;
 
        /* Nothing to do if udev fallback is disabled. */
-       if (!dm->cmd->current_settings.udev_fallback)
+       if (!dm->cmd->current_settings.udev_fallback) {
+               fs_set_create();
                return 1;
+       }
 
        while ((child = dm_tree_next_child(&handle, root, 0))) {
                if (!(lvlayer = dm_tree_node_get_context(child)))
index a18125ed29b2ff2650925bb3af698d5f6db71b87..f9eb28081fdf0b041d91d0a8a3991b97f660d448 100644 (file)
@@ -32,6 +32,7 @@
  * Supports to wait for udev device settle only when needed.
  */
 static uint32_t _fs_cookie = DM_COOKIE_AUTO_CREATE;
+static int _fs_create = 0;
 
 static int _mk_dir(const char *dev_dir, const char *vg_name)
 {
@@ -427,6 +428,8 @@ static void _pop_fs_ops(void)
                          fsp->dev, fsp->old_lv_name, fsp->check_udev);
                _del_fs_op(fsp);
        }
+
+       _fs_create = 0;
 }
 
 static int _fs_op(fs_op_t type, const char *dev_dir, const char *vg_name,
@@ -500,7 +503,12 @@ void fs_set_cookie(uint32_t cookie)
        _fs_cookie = cookie;
 }
 
+void fs_set_create(void)
+{
+       _fs_create = 1;
+}
+
 int fs_has_non_delete_ops(void)
 {
-       return _other_fs_ops(FS_DEL);
+       return _fs_create || _other_fs_ops(FS_DEL);
 }
index 43e2846a8b31b7c49dc5edb7c00625cff098c17f..9e433c8ea32b631154cacc6ab70c1fb7b9d25eb0 100644 (file)
@@ -32,6 +32,7 @@ int fs_rename_lv(struct logical_volume *lv, const char *dev,
 /* void fs_unlock(void);  moved to activate.h */
 uint32_t fs_get_cookie(void);
 void fs_set_cookie(uint32_t cookie);
+void fs_set_create(void);
 int fs_has_non_delete_ops(void);
 
 #endif
This page took 0.049589 seconds and 5 git commands to generate.