Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Am Montag, 2. Oktober 2006 17:10 schrieb Ralf Schenk: > Philipp Reisner schrieb: > > Am Montag, 2. Oktober 2006 15:53 schrieb Ralf Schenk: > >> Philipp Reisner schrieb: > >>> Could you please retry with this pach: > >>> > >>> phil at mescal:~/src/drbd08/drbd$ svn diff > >>> Index: drbd_nl.c > >>> =================================================================== > >>> --- drbd_nl.c (revision 2482) > >>> +++ drbd_nl.c (working copy) > >>> @@ -671,6 +671,8 @@ > >>> > >>> nbc->backing_bdev = inode->i_bdev; > >>> if (bd_claim(nbc->backing_bdev, mdev)) { > >>> + WARN("Backing device hold by: %s\n", > >>> + nbc->backing_bdev->bd_holder); > >>> retcode=LDMounted; > >>> goto fail; > >>> } > >>> > >>> > >>> And see what ends up in the kernel log ? > >> > >> Hello ! > >> > >> Thanks for your fast reply... > >> Thats what I get now: > >> Oct 2 15:42:27 xeon2 kernel: drbd: initialised. Version: 8.0pre5 > >> (api:84/proto:83) > >> Oct 2 15:42:27 xeon2 kernel: drbd: SVN Revision: 2482M build by > >> root at ubuntu_devel, 2006-10-02 15:38:45 > >> Oct 2 15:42:27 xeon2 kernel: drbd: registered as block device major 147 > >> Oct 2 15:43:05 xeon2 kernel: drbd0: Backing device hold by: > >> Oct 2 15:43:05 xeon2 kernel: drbd0: conn( StandAlone -> Unconnected ) > >> Oct 2 15:43:05 xeon2 kernel: drbd0: receiver (re)started > >> Oct 2 15:43:05 xeon2 kernel: drbd0: conn( Unconnected -> WFConnection ) > >> > >> No answers here.... > >> > >> But perhaps that helps: > >> Ubuntu (6.06 Dapper Server) uses evms as addon for logical volume > >> management. They use a kernel patch to make that work with later 2.6 > >> kernels. Since I built my kernel on my own but wanted to stay with that > >> functionality I applied their kernel-patch manually. Perhaps that > >> conflicts with your way of checking if a device is already in use... > >> > >> I attach the small patch. > > > > It seems that something else has already claimed that block device. > > Strange. Can you mkfs and mount that device ? > > Yes, of course. It already contains a file system and a whole virtual > server which is not in production. I was reading the bd_claim kernel > function modified by the ubuntu patch to see if the results are the > problem. I'm not a c programmer... > > But I think your code > if (bd_claim(nbc->backing_bdev, mdev)) { > WARN("Backing device hold by: %s\n", > nbc->backing_bdev->bd_holder); > retcode=LDMounted; > goto fail; > } > > gets back -EBUSY all the time but nbc->backing_bdev->bd_holder is empty. I do not think so ;) When I read your ubuntu patch it boils down to that bd_claim() is in your kernel: int bd_claim(struct block_device *bdev, void *holder) { int res = -EBUSY; spin_lock(&bdev_lock); if (!bdev->bd_holder || bdev->bd_holder == holder) { bdev->bd_holder = holder; bdev->bd_holders++; res = 0; } spin_unlock(&bdev_lock); return res; } if nbc->backing_bdev->bd_holder == 0 then it will return 0. => drbd claimed the devices sucessfully, or it will return -EBUSY => someone else claimed it already. Retry it with WARN("Backing device hold by: %p\n", nbc->backing_bdev->bd_holder); note the "%p" instad of "%s". -phil -- : Dipl-Ing Philipp Reisner Tel +43-1-8178292-50 : : LINBIT Information Technologies GmbH Fax +43-1-8178292-82 : : Schönbrunnerstr 244, 1120 Vienna, Austria http://www.linbit.com :