mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Anders Gustafsson <andersg@0x63.nu>
To: Svetoslav Slavtchev <galia@st-peter.stw.uni-erlangen.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [2.5.20]newbee call for help getting lvm working
Date: Sun, 9 Jun 2002 00:26:28 +0200	[thread overview]
Message-ID: <20020608222628.GA10981@h55p111.delphi.afb.lu.se> (raw)
In-Reply-To: <3CFF9590.5030504@st-peter.stw.uni-erlangen.de>

On Thu, Jun 06, 2002 at 07:02:08PM +0200, Svetoslav Slavtchev wrote:
> Hi ,
> i was trying to get the patch from Anders Gustafsson working in 2.5.20,
> but i'm getting  by compilation:
> ....
> lvm.c: In function `__update_hardsectsize':
> lvm.c:2021: warning: implicit declaration of function `get_hardsect_size'


[.. snip ..]

>    /* only perform this operation on active snapshots */
>    if ((lv->lv_access & LV_SNAPSHOT) &&
>        (lv->lv_status & LV_ACTIVE)) {
>        for (e = 0; e < lv->lv_remap_end; e++) {
>            hardsectsize =  get_hardsect_size( 
> lv->lv_block_exception[e].rdev_new);

snapshotting doesn't work anyhow, so this block could be removed 'til
its unbroked.

below is a patch that does this. it is rater untested though as i
havn't be able to run it for more than a few minutes because my
cardbus networkcard doesn't work in 2.5.20

-- 

//anders/g

You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


ChangeSet@1.405, 2002-06-03 00:44:52+02:00, andersg@heineken.0x63.nu
  forwardport of my lvm sanitation work to 2.5.19


 drivers/md/lvm.c    |   36 +++++++++++++++++++++++++++++-------
 include/linux/lvm.h |    2 +-
 2 files changed, 30 insertions(+), 8 deletions(-)


diff -Nru a/drivers/md/lvm.c b/drivers/md/lvm.c
--- a/drivers/md/lvm.c	Sun Jun  9 00:17:40 2002
+++ b/drivers/md/lvm.c	Sun Jun  9 00:17:40 2002
@@ -214,7 +214,8 @@
 
 #include <linux/hdreg.h>
 #include <linux/stat.h>
-#include <linux/fs.h>
+
+#include <linux/buffer_head.h>
 #include <linux/proc_fs.h>
 #include <linux/blkdev.h>
 #include <linux/genhd.h>
@@ -904,7 +905,7 @@
 		P_IOCTL("BLKFLSBUF\n");
 
 		fsync_bdev(inode->i_bdev);
-		invalidate_buffers(inode->i_rdev);
+		invalidate_bdev(inode->i_bdev,0);
 		break;
 
 	case HDIO_GETGEO:
@@ -2003,7 +2004,7 @@
 
 
 static void __update_hardsectsize(kern_lv_t *lv) {
-	int le, e;
+	int le; /*, e;*/
 	int max_hardsectsize = 0, hardsectsize;
 
 	for (le = 0; le < lv->lv_allocated_le; le++) {
@@ -2014,6 +2015,7 @@
 			max_hardsectsize = hardsectsize;
 	}
 
+#ifdef BROKEN /* snapshotting broken */
 	/* only perform this operation on active snapshots */
 	if ((lv->lv_access & LV_SNAPSHOT) &&
 	    (lv->lv_status & LV_ACTIVE)) {
@@ -2025,6 +2027,7 @@
 				max_hardsectsize = hardsectsize;
 		}
 	}
+#endif
 }
 
 /*
@@ -2371,8 +2374,14 @@
 
 	lv_ptr->lv_status &= ~LV_ACTIVE;
 
-	/* invalidate the buffers */
-	invalidate_buffers(lv_ptr->lv_kdev);
+	/* invalidate the buffers - FIXME! we might want the bdev in the lv */
+	{
+		struct block_device *bdev = bdget(kdev_t_to_nr(lv_ptr->lv_kdev));
+		if (bdev) {
+			invalidate_bdev(bdev,0);
+			bdput(bdev);
+		}
+	}
 
 	/* reset generic hd */
 	lvm_gendisk.part[minor(lv_ptr->lv_kdev)].start_sect = -1;
@@ -2946,9 +2955,22 @@
        if (copy_from_user(&pv_flush_req, arg,
                           sizeof(pv_flush_req)) != 0)
                return -EFAULT;
-       /* FIXME! find kern__pv and use that? */
+
+       /* FIXME! should we really be allowed to flush any device here? */
+
        fsync_dev(to_kdev_t(pv_flush_req.pv_dev)); 
-       invalidate_buffers(to_kdev_t(pv_flush_req.pv_dev));
+       
+       /* invalidate the buffers */
+       {
+	       struct block_device *bdev = bdget(pv_flush_req.pv_dev);
+	       if (bdev) {
+		       invalidate_bdev(bdev,0);
+		       bdput(bdev);
+	       }
+       }
+       
+//       fsync_dev(to_kdev_t(pv_flush_req.pv_dev)); 
+//       invalidate_buffers(to_kdev_t(pv_flush_req.pv_dev));
 
        return 0;
 }
diff -Nru a/include/linux/lvm.h b/include/linux/lvm.h
--- a/include/linux/lvm.h	Sun Jun  9 00:17:40 2002
+++ b/include/linux/lvm.h	Sun Jun  9 00:17:40 2002
@@ -405,7 +405,7 @@
 	uint pe_allocated;
 	uint pe_stale;		/* for future use */
 	pe_disk_t *pe;		/* HM */
-	struct block_device *bd;
+	void *bd; /* a struct block_device has nothing to do in userspace */
 	char pv_uuid[UUID_LEN+1];
 	uint32_t pe_start;	/* in sectors */
 } user_pv_t;

===================================================================


This BitKeeper patch contains the following changesets:
1.405
## Wrapped with gzip_uu ##


begin 664 bkpatch860
M'XL(`(2"`CT``[5676_;-A1]-G_%'?*2I+5$4A^6G#GKVF1;T&TM,A380P&#
M%JE(L"RZ$FTGF/K?=RFIB>O:,!:LLH$KB??CW,.C*YW`AUI5XX$HI:KJ.W("
MO^G:C`>9RDLU5Z5#[T//*5>X<*LU+KB97BBW=W?GJBI5X<[F[JS0FR%W`H*>
M[X5),EBCQWC`'._QCGE8JO'@]OK7#[__?$O(9`)O,E'>J;^4@<F$&%VM12'K
M5\)DA2X=4XFR7B@CG$0OFD?7AE/*\1>PD4>#L&$A]4=-PB1CPF=*4NY'H4]Z
MB*]V.]E-%%+&&?5HW#`61!ZY`N;X-`#*71JZU`-*Q[X_#O@+RL>4PJ&\\(+#
MD)+7\/^V\88DD.IJ(RJYU)4!G<+B`8KU`FI1YD:87)>PT=4<ZP+R[["8O`6&
MV3AY_\0O&?['@Q`J*+D\THVL<KO-[D*Z",E)MIKRT30T#L-1$RDA>1"H4>C+
MR&/!00X/Y,->./?Q:'P_#OE15'F9%"NIW"(O5_=MHFR;[=CW&LP81TVL5,I#
M01E+Z2P*U&%@!U,^86,1#;U6U;M='!?W\W@\K/']^0+N4>I%+&KH:.2Q5NH\
MWE6Z[Q]7>@S#T7>1>J46>JT@$4516T7G)1;(I3`*9JLT13P.RKN3P3L85IOV
MCW)]_PWKSY#\%6<C8.3&&DX^DI-^V^'';M\["-,,]\')+LE53%OWS@P&3V"G
M,ZG6IWFII1I>YNW52WIV@04H#=L*G<40`X6Z`/?\):B+<]>N,+MRDJ=2I?#Z
M]MW;ZS]Q&>I2+.M,&Y.7=S"K-&X(=/[<5C]1I<Q3+."-?,1^@S:`B`PP<HM#
MDSWR"$/XY>;O/ZY_@(V"17Z7&=@(1-.Z(%X,:\^+M2TS^`?[JTVU2@S@J$_F
M4W3)$P7GK>\$0^Z4.9WCQ=1,C9Z6U6FQGBY--;Q$:^^?8?_(40JG-N0,;,9O
M*'MD"M=F<KDRG;.]_DSP?\5C/VX)M-;#/8+NP#[[=I"D52%M5Y5"&3W`#)_K
M`E]/2EI%I<6JSE#;#]!WD*E*_61[_&BS!ZS+;BW_DGRKR`$R,;SWP;;ZL^-T
M+=?3%LZT4I\<O.A;[>._INK+S<.$]1Y?T];?_$QV3XCK]F=I_5`FMO8I[ENW
M@WN1G5UL!6WCZ#@X&MW.QCV#]/AX?/9`/SPA#Z9LAR3';X*&^9X7M$.2\6<,
M209#]EUFI-10:@/JOOT@V*<RG"H:5OAA5R]%HNS$[%Y..Q-S#P?/&9H^C>PS
MTYG!6N?2RMS.-!![X66BMAUD=I(A4&G'_!-<^RP]?C(FF4KF]6HQ2640TR@,
*R+\DG'SPL@H`````
`
end

  reply	other threads:[~2002-06-08 22:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-06 17:02 Svetoslav Slavtchev
2002-06-08 22:26 ` Anders Gustafsson [this message]
2002-06-09 10:24   ` Svetoslav Slavtchev

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=20020608222628.GA10981@h55p111.delphi.afb.lu.se \
    --to=andersg@0x63.nu \
    --cc=galia@st-peter.stw.uni-erlangen.de \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®