All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Mason <mason@suse.com>
To: Ed Tomlinson <tomlins@CAM.ORG>
Cc: linux-lvm@sistina.com
Subject: [linux-lvm] Re: [OOPS] full snapshot (with test vfs locking patch for reiserfs snapshots in 11-pre)
Date: Mon, 08 Oct 2001 15:51:49 -0400	[thread overview]
Message-ID: <61620000.1002570709@tiny> (raw)
In-Reply-To: <20011008170549.3B15E76467@oscar.casa.dyndns.org>


On Monday, October 08, 2001 01:05:48 PM -0400 Ed Tomlinson <tomlins@CAM.ORG> wrote:

> On October 8, 2001 12:54 pm, Chris Mason wrote:
>> On Monday, October 08, 2001 11:53:46 AM -0400 Ed Tomlinson
>> 
>> <tomlins@CAM.ORG> wrote:
>> > Hi Chris,
>> > 
>> > To summerize, with 2.4.11-pre5 and lvm-1.01-rc4 + your test vfslocking
>> > patch  for 2.4.11-pre I, unlike you, was able to make snapshots and
>> > reiserfsck them without  problems.  Then I tried a debench 50 run and got
>> > an oops.
>> 
>> Confirmed, similar oops here.  Do you get this with rc4 in 2.4.10?
> 
> Funny you should ask...  Guess what was runing when this email arrived?  The 
> answer is that with 2.4.10 + lvm 1.01-rc4 the snapshot deactivates correctly - 
> I do not see an oops.

Ok, that first patch won't quite fix it, as we can still oops
in lvm_snapshot_COW.  This one works better for me:

--- 0.21/drivers/md/lvm.c Sun, 07 Oct 2001 22:15:54 -0400 
+++ 0.21(w)/drivers/md/lvm.c Mon, 08 Oct 2001 15:54:42 -0400 
@@ -1142,7 +1142,8 @@
 
 	/* we must redo lvm_snapshot_remap_block in order to avoid a
 	   race condition in the gap where no lock was held */
-	if (!lvm_snapshot_remap_block(&rdev, &rsector, pe_start, lv) &&
+	if (lv->lv_block_exception && 
+	    !lvm_snapshot_remap_block(&rdev, &rsector, pe_start, lv) &&
 	    !lvm_snapshot_COW(rdev, rsector, pe_start, rsector, vg, lv))
 		lvm_write_COW_table_block(vg, lv);
 
@@ -1151,11 +1152,12 @@
 
 static inline void _remap_snapshot(kdev_t rdev, ulong rsector,
 				   ulong pe_start, lv_t *lv, vg_t *vg) {
-	int r;
+	int r = 0;
 
 	/* check to see if this chunk is already in the snapshot */
 	down_read(&lv->lv_lock);
-	r = lvm_snapshot_remap_block(&rdev, &rsector, pe_start, lv);
+	if (lv->lv_block_exception)
+		r = lvm_snapshot_remap_block(&rdev, &rsector, pe_start, lv);
 	up_read(&lv->lv_lock);
 
 	if (!r)
Index: 0.21/drivers/md/lvm-snap.c
--- 0.21/drivers/md/lvm-snap.c Sat, 06 Oct 2001 00:07:22 -0400 root (linux/i/c/38_lvm-snap.c 1.1.2.1.2.1 644)
+++ 0.21(w)/drivers/md/lvm-snap.c Mon, 08 Oct 2001 15:13:10 -0400 root (linux/i/c/38_lvm-snap.c 1.1.2.1.2.1 644)
@@ -140,6 +140,8 @@
 	unsigned long mask = lv->lv_snapshot_hash_mask;
 	int chunk_size = lv->lv_chunk_size;
 
+	if (!hash_table)
+		BUG() ;
 	hash_table = &hash_table[hashfn(org_dev, org_start, mask, chunk_size)];
 	list_add(&exception->hash, hash_table);
 }

  parent reply	other threads:[~2001-10-08 19:51 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-03 23:03 [BUG] opps in 2.4.11-pre2 + prempt patch Ed Tomlinson
2001-10-04 13:12 ` [reiserfs-list] " Chris Mason
     [not found] ` <20011008012906.D790A11069@oscar.casa.dyndns.org>
     [not found]   ` <77260000.1002507094@tiny>
2001-10-08 15:53     ` [linux-lvm] [OOPS] full snapshot (with test vfs locking patch for reiserfs snapshots in 11-pre) Ed Tomlinson
2001-10-08 16:54       ` [linux-lvm] " Chris Mason
2001-10-08 17:05         ` Ed Tomlinson
2001-10-08 17:40           ` Chris Mason
2001-10-08 19:51           ` Chris Mason [this message]
2001-10-09  1:57             ` Ed Tomlinson
2001-10-09  2:29               ` Chris Mason
2001-10-09 11:42                 ` Ed Tomlinson
2001-10-10 21:28                 ` Ed Tomlinson
2001-10-10 23:21                   ` Chris Mason
2001-10-11  0:37                     ` Ed Tomlinson
2001-10-11  1:27                       ` Chris Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=61620000.1002570709@tiny \
    --to=mason@suse.com \
    --cc=linux-lvm@sistina.com \
    --cc=tomlins@CAM.ORG \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.