From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18070 invoked by alias); 8 Aug 2006 21:20:02 -0000 Received: (qmail 18043 invoked by uid 9447); 8 Aug 2006 21:20:01 -0000 Date: Tue, 08 Aug 2006 21:20:00 -0000 Message-ID: <20060808212001.18041.qmail@sourceware.org> From: agk@sourceware.org To: lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW lib/activate/activate.c lib/a ... Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2006-08/txt/msg00001.txt.bz2 List-Id: CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2006-08-08 21:20:01 Modified files: . : WHATS_NEW lib/activate : activate.c dev_manager.c dev_manager.h Log message: Fix missing lockfs on first snapshot creation. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.414&r2=1.415 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/activate.c.diff?cvsroot=lvm2&r1=1.111&r2=1.112 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.c.diff?cvsroot=lvm2&r1=1.112&r2=1.113 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/dev_manager.h.diff?cvsroot=lvm2&r1=1.25&r2=1.26 --- LVM2/WHATS_NEW 2006/08/01 14:56:32 1.414 +++ LVM2/WHATS_NEW 2006/08/08 21:20:00 1.415 @@ -1,5 +1,6 @@ Version 2.02.08 - ================================ + Fix missing lockfs on first snapshot creation. Add unreliable --trustcache option to reporting commands. Fix locking for mimage removal. Fix clvmd_init_rhel4 'status' exit code. --- LVM2/lib/activate/activate.c 2006/05/25 13:32:26 1.111 +++ LVM2/lib/activate/activate.c 2006/08/08 21:20:00 1.112 @@ -528,7 +528,7 @@ return r; } -static int _lv_suspend_lv(struct logical_volume *lv) +static int _lv_suspend_lv(struct logical_volume *lv, int lockfs) { int r; struct dev_manager *dm; @@ -536,7 +536,7 @@ if (!(dm = dev_manager_create(lv->vg->cmd, lv->vg->name))) return_0; - if (!(r = dev_manager_suspend(dm, lv))) + if (!(r = dev_manager_suspend(dm, lv, lockfs))) stack; dev_manager_destroy(dm); @@ -637,6 +637,7 @@ { struct logical_volume *lv, *lv_pre; struct lvinfo info; + int lockfs = 0; if (!activation()) return 1; @@ -672,7 +673,11 @@ stack; memlock_inc(); - if (!_lv_suspend_lv(lv)) { + + if (lv_is_origin(lv_pre) || lv_is_cow(lv_pre)) + lockfs = 1; + + if (!_lv_suspend_lv(lv, lockfs)) { memlock_dec(); fs_unlock(); return 0; --- LVM2/lib/activate/dev_manager.c 2006/07/10 19:17:40 1.112 +++ LVM2/lib/activate/dev_manager.c 2006/08/08 21:20:00 1.113 @@ -37,6 +37,7 @@ ACTIVATE, DEACTIVATE, SUSPEND, + SUSPEND_WITH_LOCKFS, CLEAN } action_t; @@ -984,8 +985,8 @@ goto_out; break; case SUSPEND: - if (!lv_is_origin(lv) && !lv_is_cow(lv)) - dm_tree_skip_lockfs(root); + dm_tree_skip_lockfs(root); + case SUSPEND_WITH_LOCKFS: if (!dm_tree_suspend_children(root, dlid, ID_LEN + sizeof(UUID_PREFIX) - 1)) goto_out; break; @@ -1049,9 +1050,10 @@ return r; } -int dev_manager_suspend(struct dev_manager *dm, struct logical_volume *lv) +int dev_manager_suspend(struct dev_manager *dm, struct logical_volume *lv, + int lockfs) { - return _tree_action(dm, lv, SUSPEND); + return _tree_action(dm, lv, lockfs ? SUSPEND_WITH_LOCKFS : SUSPEND); } /* --- LVM2/lib/activate/dev_manager.h 2006/05/16 16:48:30 1.25 +++ LVM2/lib/activate/dev_manager.h 2006/08/08 21:20:00 1.26 @@ -47,7 +47,8 @@ int dev_manager_mirror_percent(struct dev_manager *dm, struct logical_volume *lv, int wait, float *percent, uint32_t *event_nr); -int dev_manager_suspend(struct dev_manager *dm, struct logical_volume *lv); +int dev_manager_suspend(struct dev_manager *dm, struct logical_volume *lv, + int lockfs); int dev_manager_activate(struct dev_manager *dm, struct logical_volume *lv); int dev_manager_preload(struct dev_manager *dm, struct logical_volume *lv); int dev_manager_deactivate(struct dev_manager *dm, struct logical_volume *lv);