From mboxrd@z Thu Jan 1 00:00:00 1970 From: Goetz Bock Message-ID: <20011105004028.A322@dragon.blacknet.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-md5; protocol="application/pgp-signature"; boundary="7AUc2qLy4jB3hD7Z" Content-Disposition: inline Subject: [linux-lvm] Linux 2.4.13-ac7 missing/wrong methods Sender: linux-lvm-admin@sistina.com Errors-To: linux-lvm-admin@sistina.com Reply-To: linux-lvm@sistina.com List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: Date: Sun Nov 4 17:39:01 2001 List-Id: To: linux-lvm@sistina.com --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, after I'v just installed a new server with Linux 2.4.13-ac7 and LVM 1.0.1-rc4, I'd just wanted to tell you (dear list) that there are two missing symbols in lvm-snap.c I've used vanila 2.4.13 applied the ac7 patch, the 2.4.11-vfs... patch and the LVM patch generated by today (as of about 12:00 GMT) CVS version. Patching and comiling worked flawlessly (except for the known bug of patching Makefile twice and the attemp to remove the lvm-snap.h (IIRC)) but make modules_install failed whith two symbols missing. After some reading of the code and the patches I've made the inlined patch. With it everyting works fine (well, for some reasons my initrd does not work as exspected and I will have to try again later to move to a LVM root ... (if someone should care, I've nothing but the described patches applied, but am using devfs)) --------------------------------------------------------------------------- --- linux-2.4.13-ac7-broken/drivers/md/lvm-snap.c Sun Nov 4 21:51:05 2001 +++ linux-2.4.13-ac7/drivers/md/lvm-snap.c Sun Nov 4 21:45:14 2001 @@ -542,9 +542,10 @@ int lvm_snapshot_alloc(lv_t * lv_snap) { int ret, max_sectors; + int nbhs =3D KIO_MAX_SECTORS; =20 /* allocate kiovec to do chunk io */ - ret =3D alloc_kiovec(1, &lv_snap->lv_iobuf); + ret =3D alloc_kiovec_sz(1, &lv_snap->lv_iobuf, &nbhs); if (ret) goto out; =20 max_sectors =3D KIO_MAX_SECTORS << (PAGE_SHIFT-9); @@ -553,7 +554,7 @@ if (ret) goto out_free_kiovec; =20 /* allocate kiovec to do exception table io */ - ret =3D alloc_kiovec(1, &lv_snap->lv_COW_table_iobuf); + ret =3D alloc_kiovec_sz(1, &lv_snap->lv_COW_table_iobuf, &nbhs); if (ret) goto out_free_kiovec; =20 ret =3D lvm_snapshot_alloc_iobuf_pages(lv_snap->lv_COW_table_iobuf, @@ -568,12 +569,12 @@ =20 out_free_both_kiovecs: unmap_kiobuf(lv_snap->lv_COW_table_iobuf); - free_kiovec(1, &lv_snap->lv_COW_table_iobuf); + free_kiovec_sz(1, &lv_snap->lv_COW_table_iobuf, &nbhs); lv_snap->lv_COW_table_iobuf =3D NULL; =20 out_free_kiovec: unmap_kiobuf(lv_snap->lv_iobuf); - free_kiovec(1, &lv_snap->lv_iobuf); + free_kiovec_sz(1, &lv_snap->lv_iobuf, &nbhs); lv_snap->lv_iobuf =3D NULL; vfree(lv_snap->lv_snapshot_hash_table); lv_snap->lv_snapshot_hash_table =3D NULL; @@ -582,6 +583,8 @@ =20 void lvm_snapshot_release(lv_t * lv) { + int nbhs =3D KIO_MAX_SECTORS; + if (lv->lv_block_exception) { vfree(lv->lv_block_exception); @@ -597,14 +600,14 @@ { kiobuf_wait_for_io(lv->lv_iobuf); unmap_kiobuf(lv->lv_iobuf); - free_kiovec(1, &lv->lv_iobuf); + free_kiovec_sz(1, &lv->lv_iobuf, &nbhs); lv->lv_iobuf =3D NULL; } if (lv->lv_COW_table_iobuf) { kiobuf_wait_for_io(lv->lv_COW_table_iobuf); unmap_kiobuf(lv->lv_COW_table_iobuf); - free_kiovec(1, &lv->lv_COW_table_iobuf); + free_kiovec_sz(1, &lv->lv_COW_table_iobuf, &nbhs); lv->lv_COW_table_iobuf =3D NULL; } } --------------------------------------------------------------------------- --=20 Goetz Bock IT Consultant Dipl.-Inf. Univ. --7AUc2qLy4jB3hD7Z Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE75dHsf5srOMkjkQoRAr/FAJ9wOel3wNGpNH3eW2pPMp3MXH5arACgmXE1 lQD1qDqTSUp6NIg8009azfw= =wLh9 -----END PGP SIGNATURE----- --7AUc2qLy4jB3hD7Z--